2010-01-21 30 views
2

我一直很想知道爲什麼log4j在沒有log4j.properties時默認輸出錯誤消息。 stdout或stderr的合理默認值會更有意義。有沒有關於這個地方的常見問題解答或討論,表明此決定背後的推理?我一直認爲這是log4j比其他日誌替代方案更糟糕的唯一事情。爲什麼log4j默認輸出「No appenders could be found」消息而不是輸出到stdout?

+0

只有一個人可以回答這個問題,而他並不居住在so.com。 – bmargulies 2010-01-21 01:12:06

+0

這裏的默認行爲被打破,同意。 – javadba 2013-10-31 01:14:23

回答

0

假設您在fds 0,1和2關閉的情況下使用log4j(這會導致寫入(2)與EBADF一起失敗)或重定向到/ dev/null。然後log4j嘗試輸出日誌消息。在這種情況下會發生什麼?你會有一個沉默的失敗,這是你想避免在日誌庫中不惜一切代價發生的事情。

+0

這當然是一個有效的關注點,但不是輸出到stderr的「No appenders」消息?無論appender消息還是實際錯誤發送到stderr,它都會保持沉默。 – HappyEngineer 2010-01-21 19:55:19

相關問題