Tuesday, 5 April 2022

PHP Monolog

PHP Monolog can route log into different destinations such as database, file etc. The below is an example to put log into a file.

<?php
require "vendor/autoload.php";
use Monolog\Logger;
use Monolog\Formatter\LineFormatter;
use Monolog\Handler\StreamHandler;

//create a info handler
$infoHandler = new StreamHandler("/var/src/log/err.log", Logger::INFO);
$formatter = new LineFormatter(null, null, false, true);
$infoHandler->setFormatter($formatter);

//associate handler to log
$logger = new Logger('TestApp01');
$logger->pushHandler($infoHandler);

//log something
$logger->info('Try to test of my application logging.');

Also we can route log to stdout. In PHP slim framework, we can see these log info in application log for stdout.

$log = new Logger("stdout");
$streamHandler = new StreamHandler('php://stdout', Logger::DEBUG);
$log->pushHandler($streamHandler);

$log->debug('Foo foo');

When do PHPUnit Test, we can

fwrite(STDERR, "some variable");