有時,當我啓動我的Java應用程序時,logback拒絕向我的日誌文件寫入任何內容。有時它也會拒絕在午夜(或者在午夜之後的第一次記錄事件)上滾動日誌文件,這會導致記錄事件丟失到無效狀態。當我看到我的主要日誌文件時,logbacks未能滾動日誌,它將有一個像23:59和昨天的日期,任何和所有日誌後的聲明將不可挽回地丟失。我有一個相當簡單的配置文件,它看起來是正確的。當然,應該是是正確的,因爲它在大多數時間都有效。Logback有時不會寫入日誌文件,有時不會滾動日誌文件
這是我的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--See http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
<!--and http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy-->
<!--for further documentation-->
<append>true</append>
<File>aggregator.log</File>
<encoder>
<!-- was: %d{yyyy-MM-dd HH:mm:ss}%5p [%t] (%F:%L) - %msg%n -->
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] \(%class{25}:%line\) - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- By setting the name to .gz here, we get free compression. -->
<fileNamePattern>aggregator.log.%d{yyyy-MM-dd}.gz</fileNamePattern>
</rollingPolicy>
</appender>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] \(%class{25}:%line\) - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="file"/>
<appender-ref ref="console"/>
</root>
</configuration>
不幸的是,我不能可靠地重現這個錯誤,所以調試實在是有點困難。有人能告訴我我做錯了什麼,或者還有什麼問題?如果它有任何幫助,我將STDOUT和STDERR重定向到/ dev/null(我在linux上運行,btw)。
我剛剛更新到最新的點發布。希望有幫助。 – 2010-08-25 14:20:32