Log4j不符合以下常見問題: http://logging.apache.org/log4j/1.2/faq.html#a1.2 「No. log4j不可靠,它是一個盡力而爲的故障停止記錄系統。Logback可靠性
Logback更可靠嗎?是否有可能在非常短的時間內使用logback寫入1000條日誌消息(例如)時,它可能會默默地錯過幾條消息。 謝謝, Sunil
Log4j不符合以下常見問題: http://logging.apache.org/log4j/1.2/faq.html#a1.2 「No. log4j不可靠,它是一個盡力而爲的故障停止記錄系統。Logback可靠性
Logback更可靠嗎?是否有可能在非常短的時間內使用logback寫入1000條日誌消息(例如)時,它可能會默默地錯過幾條消息。 謝謝, Sunil
我認爲Logback也是一個盡力而爲的故障停止日誌記錄系統。它沒有自由空間的磁盤上
<appender name="file" class="ch.qos.logback.core.FileAppender">
<file>/mnt/logtest/testlog.log</file>
<append>false</append>
<encoder>
<pattern>%d [%thread] %level %mdc %logger{35} - %msg%n</pattern>
</encoder>
</appender>
:運行這段代碼:
for (int i = 0; i < 8; i++) {
System.out.println("log " + i);
logger.info("log {}", i);
Thread.sleep(2000);
}
與FileAppender
。然後它運行沒有任何錯誤。幾秒鐘後,我從磁盤中刪除了一些文件。 的testlog.log
文件的內容是:
2011-10-07 08:19:01,687 [main] INFO logbacktest.LoopLog - log 5
2011-10-07 08:19:03,688 [main] INFO logbacktest.LoopLog - log 6
2011-10-07 08:19:05,688 [main] INFO logbacktest.LoopLog - log 7
沒有log 0
- log 4
行的文件中。我不認爲其他appender更可靠。
在正常運行條件下(例如系統有足夠的磁盤空間),我從來沒有見過Logback丟失了一條消息。在這個意義上,我認爲它是可靠的。但是如果你想做審計日誌記錄,我認爲你應該使用別的東西,而不是一個盡力而爲的失敗停止日誌記錄系統。 (如果攻擊者找到了通過填充磁盤空間來禁用日誌記錄的方法,那麼他可以在用戶界面上執行所有操作,而無需任何審計日誌,並且注意到磁盤已滿。)
我的問題是關於何時一切正常的更多信息。所以,假設有足夠的磁盤空間,如果我運行for循環10000次而不是8次,而不休眠2秒,它會錯過一些條目嗎? – user983141
請檢查更新的答案。 – palacsint