Now my code looks like this:
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
$ipAddress = GeoIp\Manager::getRealIp();
$geoResult = GeoIp\Manager::getDataResult($ipAddress, 'ru');
$logger = new Logger('Debug');
$logger->pushHandler(new StreamHandler($_SERVER['DOCUMENT_ROOT'].'/logs/geo.log', Logger::DEBUG));
$logger->info('Location:', array('object' => print_r($geoResult, true)));
As a result I have one-line log entry. I tried to use JsonFormatter
, but is just formats the data structure and continues print one-line records, when I want a few-line human readable beautified presentation of data.
UPDATE:
I found solution here later. Symfony2 - How to log multiline entries with monolog? And for me it looks like this:
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Formatter\LineFormatter;
$ipAddress = GeoIp\Manager::getRealIp();
$geoResult = GeoIp\Manager::getDataResult($ipAddress, 'ru');
$formatter = new LineFormatter(null, null, true);
$stream = new StreamHandler($_SERVER['DOCUMENT_ROOT'].'/logs/geo.log', Logger::DEBUG);
$stream->setFormatter($formatter);
$logger = new Logger('Debug');
$logger->pushHandler($stream);
$logger->info('Location:', array('object' => print_r($geoResult, true)));