我的记录器对象在每行末尾输出空数组 -[] []
。例如;
[2017-08-17 12:26:02] import_log.INFO: checkForDuplicates::is_processing [] []
[2017-08-17 12:26:04] import_log.INFO:重复[] []
我有什么办法可以阻止这种情况发生吗?我只想在没有空数组的情况下注销,即如下所示:
[2017-08-17 12:26:02] import_log.INFO: checkForDuplicates::is_processing
[2017-08-17 12:26:04] import_log.INFO:重复
我正在创建自己的日志,如下所示:
protected function importXML($fName) {
// Create a log file for each XML file imported
$logger = new Logger("import_log");
$logger->pushHandler(new StreamHandler(storage_path('./logs/' . $fName . '.log')), Logger::INFO);
....
$logger->info($myString);
....
$logger->info($myObject);
}
这些空数组是context and extra您的日志条目的属性。Context添加日志条目时作为附加数组参数提供。Extra由您附加到记录器的“处理器”填充。
这些空数组可以被隐藏:
当你没有定义一个formatter
对于 Monolog,它将使用默认值LineFormatter
。中的一个构造函数参数 https://github.com/Seldaek/monolog/blob/7b992836275e09ed63c63fe33ca9993e515e6c5d/src/Monolog/Formatter/LineFormatter.php#L37 for a LineFormatter
是您正在寻找的选项:
public function __construct(string $format = null, string $dateFormat = null, bool $allowInlineLineBreaks = false, bool $ignoreEmptyContextAndExtra = false)
具体来说,第四个选项是相关的 -bool $ignoreEmptyContextAndExtra = false
。如果您创建自己的格式化程序:
$formatter = new LineFormatter(null, null, false, true);
将其交给您的处理程序:
$handler = new StreamHandler(storage_path('./logs/' . $fName . '.log'));
$handler->setFormatter($formatter);
这应该可以防止记录器显示“context”和“extra”的空数组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)