Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Monolog Logger在每条日志消息的末尾输出空数组_Php_Monolog - Fatal编程技术网

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

Php Monolog Logger在每条日志消息的末尾输出空数组,php,monolog,Php,Monolog,我的logger对象正在输出每行末尾的空数组-[]]。比如, [2017-08-17 12:26:02]导入日志信息:checkForDuplicates::正在处理[][] [2017-08-17 12:26:04]导入日志信息:重复[] 我能阻止这一切发生吗?我只想在不使用空阵列的情况下注销,如以下所示: [2017-08-17 12:26:02]导入日志信息:checkForDuplicates::正在处理 [2017-08-17 12:26:04]导入日志信息:重复 我正在创建自己的日志

我的logger对象正在输出每行末尾的空数组-
[]]
。比如,

[2017-08-17 12:26:02]导入日志信息:checkForDuplicates::正在处理[][]
[2017-08-17 12:26:04]导入日志信息:重复[]

我能阻止这一切发生吗?我只想在不使用空阵列的情况下注销,如以下所示:

[2017-08-17 12:26:02]导入日志信息:checkForDuplicates::正在处理
[2017-08-17 12:26:04]导入日志信息:重复

我正在创建自己的日志,如下所示:

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

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

可以隐藏这些空数组:

如果不为Monolog定义
格式化程序
,它将使用默认的
行格式化程序
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”的空数组。

要使用LineFormatter,您需要
use\Monolog\Formatter\LineFormatter这是否回答了您的问题?