使用 Monolog 时清理日志记录?
Clean Logging when using Monolog?
我想使用 Monolog 来记录一些信息。
这是我的代码:
// Create the logger
$logger = new Monolog\Logger('my_logger');
$path = storage_path('app/logs/mc.log');
$logger->pushHandler(new Monolog\Handler\StreamHandler($path, Monolog\Logger::INFO));
// You can now use your logger
$logger->info('My logger is now ready');
这是我执行代码几次后日志文件的样子:
[2018-02-13 15:06:12] my_logger.INFO: My logger is now ready [] []
[2018-02-13 15:06:29] my_logger.INFO: My logger is now ready [] []
我想要一个更干净的日志文件,如下所示:
[2018-02-13 15:06:12] My logger is now ready
[2018-02-13 15:06:29] My logger is now ready
这可能吗?或者至少可以删除最后的两个空括号吗?
您可以自定义日志格式。 From the docs:
// the default date format is "Y-m-d H:i:s"
$dateFormat = "Y n j, g:i a";
// the default output format is "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n"
$output = "%datetime% > %level_name% > %message% %context% %extra%\n";
// finally, create a formatter
$formatter = new LineFormatter($output, $dateFormat);
// Create a handler
$stream = new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG);
$stream->setFormatter($formatter);
// bind it to a logger object
$securityLogger = new Logger('security');
$securityLogger->pushHandler($stream);
您将删除标准格式的 %channel%.%level_name%
、%context%
和 %extra%
组件。
也就是说,严重性可能非常重要 - 您想知道某项是 DEBUG
日志项还是 CRITICAL
日志项。 []
位也是如此 - 它们有时可能包含重要信息以供进一步分析。
这些日志通常不适合非技术用户查看,因此我质疑为了最好的可读性调整而抑制有用信息的价值。
我想使用 Monolog 来记录一些信息。
这是我的代码:
// Create the logger
$logger = new Monolog\Logger('my_logger');
$path = storage_path('app/logs/mc.log');
$logger->pushHandler(new Monolog\Handler\StreamHandler($path, Monolog\Logger::INFO));
// You can now use your logger
$logger->info('My logger is now ready');
这是我执行代码几次后日志文件的样子:
[2018-02-13 15:06:12] my_logger.INFO: My logger is now ready [] []
[2018-02-13 15:06:29] my_logger.INFO: My logger is now ready [] []
我想要一个更干净的日志文件,如下所示:
[2018-02-13 15:06:12] My logger is now ready
[2018-02-13 15:06:29] My logger is now ready
这可能吗?或者至少可以删除最后的两个空括号吗?
您可以自定义日志格式。 From the docs:
// the default date format is "Y-m-d H:i:s"
$dateFormat = "Y n j, g:i a";
// the default output format is "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n"
$output = "%datetime% > %level_name% > %message% %context% %extra%\n";
// finally, create a formatter
$formatter = new LineFormatter($output, $dateFormat);
// Create a handler
$stream = new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG);
$stream->setFormatter($formatter);
// bind it to a logger object
$securityLogger = new Logger('security');
$securityLogger->pushHandler($stream);
您将删除标准格式的 %channel%.%level_name%
、%context%
和 %extra%
组件。
也就是说,严重性可能非常重要 - 您想知道某项是 DEBUG
日志项还是 CRITICAL
日志项。 []
位也是如此 - 它们有时可能包含重要信息以供进一步分析。
这些日志通常不适合非技术用户查看,因此我质疑为了最好的可读性调整而抑制有用信息的价值。