我的记录器对象在每行末尾输出空数组 - [] []
。例如;
[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);
}
答案 0 :(得分:6)
这些空数组是日志条目的 context 和 extra 属性。添加日志条目时,上下文作为附加数组参数提供。 额外由"处理器填充"您附加到记录器。
可以隐藏这些空数组:
如果您没有为Monolog定义formatter
,则会使用默认LineFormatter
。 a LineFormatter
的{{3}}之一是您正在寻找的选项:
public function __construct(string $format = null, string $dateFormat = null, bool $allowInlineLineBreaks = false, bool $ignoreEmptyContextAndExtra = false)
具体而言,第4个选项是相关的 - bool $ignoreEmptyContextAndExtra = false
。如果您创建自己的格式化程序:
$formatter = new LineFormatter(null, null, false, true);
将它交给你的经纪人:
$handler = new StreamHandler(storage_path('./logs/' . $fName . '.log');
$handler->setFormatter($formatter);
这应该可以防止记录器为" context"显示空数组。和"额外"。