我在这里阅读了很多问题并阅读了一些文档。但是仍然不了解如何使用monolog格式化JSON值。
这里我的代码不起作用:php$formatter = new JsonFormatter();$log->addInfo($formatter->format(['foo' => 'bar']));
输出总是一行而不是格式化的。bash[2016-03-02 07:45:57] parameters.INFO: {"foo":"bar"} [] []
最佳答案
JsonFormatter旨在用于格式化输出。
$log = new \Monolog\Logger( 'my_log' );
$stream_handler = new \Monolog\Handler\StreamHandler( 'my_log_file.log' );
$stream_handler->setFormatter( new \Monolog\Formatter\JsonFormatter() );
$log->pushHandler( $stream_handler );
$log->addError( 'foo' );
没有JsonFormatter,您将获得正常输出:
[2016-04-04 16:37:55] my_log.ERROR: foo [] []
使用JsonFormatter,您将获得JSON输出:
{"message":"foo","context":[],"level":400,"level_name":"ERROR","channel":"my_log","datetime":{"date":"2016-04-04 16:38:14.102258","timezone_type":3,"timezone":"UTC"},"extra":[]}
关于php - Monolog JsonFormatter不格式化我的代码吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35740325/