我有一个调用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)
正如Haim在评论中所建议的那样,您可以保留所有需要添加文件追加器的日志。
e.g。
<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>