gpt4 book ai didi

php - Monolog Logger 在每条日志消息的末尾输出空数组

转载 作者:可可西里 更新时间:2023-11-01 00:08:10 24 4
gpt4 key购买 nike

我的记录器对象在每行的末尾输出空数组 - [] []。例如;

[2017-08-17 12:26:02] import_log.INFO: checkForDuplicates::is_processing [] []
[2017-08-17 12:26:04] import_log.INFO: is duplicate [] []

无论如何我可以阻止这种情况发生吗?我只想在没有空数组的情况下注销,即,如下所示:

[2017-08-17 12:26:02] import_log.INFO: checkForDuplicates::is_processing
[2017-08-17 12:26:04] import_log.INFO: is duplicate

我正在像这样创建自己的日志:

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);
}

最佳答案

这些空数组是日志条目的contextextra 属性。添加日志条目时,上下文 作为附加数组参数提供。 Extra 由附加到记录器的“处理器”填充。

可以隐藏这些空数组:

当您没有为 Monolog 定义 formatter 时,它将使用默认的 LineFormatterconstructor parameters之一LineFormatter 是您正在寻找的选项:

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”和“extra”的空数组。

关于php - Monolog Logger 在每条日志消息的末尾输出空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45725762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com