重启模块后保留日志

时间:2016-04-25 14:32:43

标签: java-ee log4j

我有一个调用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>

1 个答案:

答案 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>