2017-08-17 41 views
1

我的記錄器對象在每行末尾輸出空數組 - [] []。例如;Monolog Logger在每條日誌消息的末尾輸出空陣列

[2017年8月17日12時26分02秒] import_log.INFO:checkForDuplicates :: is_processing [] []
[2017年8月17日12時26分04秒] import_log.INFO:是重複[] []

是否有反正我可以阻止這種情況發生?我只是想退出而不空數組,即,如下所示:

[2017年8月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); 
} 

回答

2

這些空數組是背景您的日誌條目的額外屬性。 上下文在添加日誌條目時作爲附加數組參數提供。 額外由您附加到記錄器的「處理器」填充。

這些空數組可以隱藏:

當你不定義爲formatter獨白,它會使用默認LineFormatter。其中constructor parameters的一個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); 

把它給你的處理程序:

這應該阻止記錄器無法顯示的「背景」和「額外的」空數組。