2016-04-25 85 views
0

我有一个调用java模块的bash脚本。 每次呼叫时,前一个呼叫的日志都将被删除。重启模块后保留日志

如何配置log4j以节约旧日志?

这是我设置的log4j:

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

     <appender name="SYSLOGBATCH" class="org.apache.log4j.net.SyslogAppender"> 
       <param name="Facility" value="LOCAL5" /> 
       <param name="Name" value="syslog" /> 
       <param name="Threshold" value="DEBUG" /> 
       <param name="FacilityPrinting" value="true"/> 
       <param name="SyslogHost" value="127.0.0.1" /> 
       <layout class="org.apache.log4j.PatternLayout"> 
         <param name="ConversionPattern" value="[aabatch-jvm] %d %-5p [%.16t] [%C :: %M] %m%n" /> 
       </layout> 
     </appender> 

     <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> 
       <param name="Target" value="System.out" /> 
       <layout class="org.apache.log4j.PatternLayout"> 
         <param name="ConversionPattern" value="[aa-jvm] %d %-5p [%.16t] [%C :: %M] %m%n" /> 
       </layout> 
     </appender> 

     ... 

     <root> 
       <level value="INFO" /> 
       <appender-ref ref="SYSLOGBATCH" /> 
     </root> 

</log4j:configuration> 
+0

您没有任何文件附件... –

回答

0

正如在他的评论中所建议的哈伊姆,你可以将所有的日志,你需要添加一个文件的appender。

例如

<appender name="file" class="org.apache.log4j.RollingFileAppender"> 
    <param name="append" value="false" /> 
    <param name="maxFileSize" value="10MB" /> 
    <param name="maxBackupIndex" value="5" /> 

    <!-- for Tomcat --> 
    <param name="file" value="${catalina.home}/logs/yourApp.log" /> 

    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="[aa-jvm] %d %-5p [%.16t] [%C :: %M] %m%n" /> 
    </layout> 
</appender>