2010-08-25 436 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