I just switched to monolog and wanted to log my message to the PHP console instead of a file. This might seem obvious for some people, but it took me a little while to figure out how to do that and I couldn’t find a similar question/answer on SO.
The example on Monolog’s Github readme only shows how to use a file:
<?php use MonologLogger; use MonologHandlerStreamHandler; // 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');
But it doesn’t state anywhere how messages can be logged to the console. After searching on Google, I landed either on a help page for Symfony or questions of people looking for a way to log to the browser console.
Advertisement
Answer
The solution is rather simple. Since the example shows a StreamHandler
it’s possible to pass in a stream (instead of the path to a file). By default, everything that is echo’ed in PHP is written to php://stdout / php://output so we can simple use one of those as stream for the StreamHandler
:
<?php use MonologLogger; use MonologHandlerStreamHandler; // 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');
Hope this saves somebody some time 🙂