2015-05-28 117 views
3

我使用如下lo4j.xml配置文件 -日志文件被损坏,在旋转

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration debug="true" 
    xmlns:log4j='http://jakarta.apache.org/log4j/'> 

    <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
     <param name="Target" value="System.out" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} %-5p %C - %m%n" /> 
     </layout> 
    </appender> 



    <appender name="Daily-ROLL-Metric" class="org.apache.log4j.rolling.RollingFileAppender"> 
     <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 
      <param name="FileNamePattern" 
       value="C:/logs/metric.log.%d{yyyy-MM-dd}.gz" /> 
      <param name="ActiveFileName" value="C:/logs/metric.log" /> 
     </rollingPolicy> 

     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d [%t] %-5p (%F:%L) - %m%n" /> 
     </layout> 
    </appender> 


    <logger 
     name="com.tieto.teco.cloudmonitor.mq.listener.SiteScopeMetricsHandler" 
     additivity="false"> 
     <level value="debug" /> 
     <appender-ref ref="Daily-ROLL-Metric" /> 
    </logger> 

    <root> 
     <level value="info" /> 
     <appender-ref ref="Daily-ROLL" /> 
     <appender-ref ref="console" /> 
    </root> 


</log4j:configuration> 

它正确,但对隔天的文件的旋转在文件中的第一次,一些被破坏的数据被插入到文件中。如果我使用 “vi文件”命令,则显示^^^^^^

,如果我使用sed命令来显示拳头的5行文件 的sed -n 1,5p名 它不起作用

,当我排除第一行就说明我 sed的-n正确的日志数据2,5p名

看来,一些二进制数据被插在文件的第一行,在旋转

的时候需要帮助解决的问题。

+0

我从同一问题的痛苦。 :( –

回答

1

我也遇到过这个问题。我尝试设置属性append =“true”,它确实解决了我的问题。

... 
    ... 
    <appender name="Daily-ROLL-Metric" class="org.apache.log4j.rolling.RollingFileAppender" append="true"> 
    ... 
    ... 

供您参考,我的appender看起来像:

<Appenders> 

    <RollingFile name="ROLL-FILE" fileName="logfilename" 
       filePattern="logs/application-%d{yyyy-MM-dd}-%i.log" 
       immediateFlush="false" append="true"> 
     <PatternLayout pattern="%-5p | %d{yyyy-MM-dd HH:mm:ss} | [%t] %C (%F:%L) - %X{unique-id} - %m%n"/> 
     <Policies> 
      <SizeBasedTriggeringPolicy size="20 MB"/> 
     </Policies> 
    </RollingFile> 

</Appenders>