2010-08-25 435 views
2

有時,當我啓動我的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)。

+0

我剛剛更新到最新的點發布。希望有幫助。 – 2010-08-25 14:20:32

回答

0

事實證明,這與logback完全沒有關係。問題是我有一個.policy文件沒有爲應用程序指定正確的權限。我認爲我設法旋轉文件的時間是我手動移動或刪除以前的文件的時間。我通過確保logback具有足夠的權限來旋轉其自己的日誌來解決此問題。

7

要調試該問題,請使用<configuration debug="true">並且不要重定向stdout。 Logback將在解析配置和出現問題時在那裏打印消息。

+0

我意識到我可以做到這一點,但由於我無法重現此行爲,因此即使具有所有信息,也很難排除故障。 但是,我會嘗試... – 2010-08-25 14:19:46

+0

我用調試運行並看看輸出,並且logback沒有抱怨。這是預料之中的,因爲大部分時間配置工作正常。 – 2010-08-25 14:44:27

+0

運行它並等待它中斷。然後,你應該會在stdout上看到一個錯誤。 – 2010-08-26 07:13:23