log imprimir debug consola chrome php console stdout monolog

imprimir - php console



PHP: ¿Cómo usar monolog para iniciar sesión en la consola(php:// out)? (2)

Acabo de cambiar a monólogo y quería registrar mi mensaje en la consola de PHP en lugar de un archivo. Esto puede parecer obvio para algunas personas, pero me tomó un poco de tiempo descubrir cómo hacerlo y no pude encontrar una pregunta / respuesta similar en SO.

El ejemplo en el archivo Léame de Github de Monolog solo muestra cómo usar un archivo:

<?php use Monolog/Logger; use Monolog/Handler/StreamHandler; // create a log channel $log = new Logger(''name''); $log->pushHandler(new StreamHandler(''path/to/your.log'', Logger::WARNING)); // <<< uses a file // add records to the log $log->addWarning(''Foo''); $log->addError(''Bar'');

Pero no indica en ninguna parte cómo se pueden registrar los mensajes en la consola. Después de buscar en Google, llegué a la página de ayuda de Symphony o a preguntas de personas que buscaban una forma de iniciar sesión en la consola del navegador.


Algunos detalles adicionales si desea modificar el formato de mensaje predeterminado al mismo tiempo:

use Monolog/Logger; use Monolog/Formatter/LineFormatter; use Monolog/Handler/StreamHandler; $output = "[%datetime%] %channel%.%level_name%: %message%/n"; $formatter = new LineFormatter($output); $streamHandler = new StreamHandler(''php://stdout'', Logger::DEBUG); $streamHandler->setFormatter($formatter); $logger = new Logger(''LoggerName''); $logger->pushHandler($streamHandler);


La solución es bastante simple. Dado que el ejemplo muestra un StreamHandler , es posible pasar una secuencia (en lugar de la ruta a un archivo). De forma predeterminada, todo lo que se hace eco en PHP se escribe en php: // stdout / php: // output, por lo que podemos usar uno de ellos como flujo para StreamHandler :

<?php use Monolog/Logger; use Monolog/Handler/StreamHandler; // create a log channel $log = new Logger(''name''); $log->pushHandler(new StreamHandler(''php://stdout'', Logger::WARNING)); // <<< uses a stream // add records to the log $log->warning(''Foo''); $log->error(''Bar'');

Espero que esto le salve a alguien algún tiempo :)