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