Java Log4j最大文件大小

Java Log4j最大文件大小,java,tomcat,log4j,Java,Tomcat,Log4j,log4j的问题是,当我指定maxfilesize时,它可以正确地用于在项目的src文件夹中生成的文件,但是在tomcat bin中生成的日志文件并没有被分割成单独的文件,因此我有一个不需要的大日志文件。 以下是log4j.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" > <log4j:configurati

log4j的问题是,当我指定maxfilesize时,它可以正确地用于在项目的src文件夹中生成的文件,但是在tomcat bin中生成的日志文件并没有被分割成单独的文件,因此我有一个不需要的大日志文件。 以下是log4j.xml:

  <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
    <log4j:configuration>
        <appender name="fatalFile" class="org.apache.log4j.RollingFileAppender">
            <param name="MaxFileSize" value="100KB" />
            <param name="MaxBackupIndex" value="5" />
            <param name="File" value="logs/pnusn/fatal.log" />
            <param name="threshold" value="fatal" />
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%5p in Class:%C{2}, Thread:%t, at:%d{ABSOLUTE}:: '%m'%n" />
            </layout>
        </appender>
        <appender name="othersFile" class="org.apache.log4j.RollingFileAppender">
            <param name="MaxFileSize" value="100KB" />
            <param name="MaxBackupIndex" value="5" />
            <param name="File" value="logs/pnusn/others.log" />
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%5p in Class:%C{2}, Thread:%t, at:%d{ABSOLUTE}:: '%m'%n" />
            </layout>
            <filter class="org.apache.log4j.varia.LevelRangeFilter">
                <param name="LevelMin" value="debug" />
                <param name="LevelMax" value="error" />
            </filter>
        </appender>
        <appender name="traceFile" class="org.apache.log4j.RollingFileAppender">
            <param name="MaxFileSize" value="200KB" />
            <param name="MaxBackupIndex" value="20" />
            <param name="File" value="logs/pnusn/trace.log" />
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%5p in Class:%C{2}, Thread:%t, at:%d{ABSOLUTE}:: '%m'%n" />
            </layout>
            <filter class="org.apache.log4j.varia.LevelRangeFilter">
                <param name="LevelMin" value="trace" />
                <param name="LevelMax" value="trace" />
            </filter>
        </appender>
        <root>
            <priority value="trace"></priority>
            <appender-ref ref="fatalFile" />
            <appender-ref ref="othersFile" />
            <appender-ref ref="traceFile" />
        </root>
    </log4j:configuration>

有人知道我怎么修吗


感谢您的考虑。

log4j日志文件出现在您的tomcat的bin目录中,因为您没有告诉它这样做

描述了如何集成log4j,包括使用
${catalina.out}
替换来引用tomcat根目录。这些说明也涉及log4j属性文件格式,不清楚它是否适用于log4j.xml


至于文件大小问题,我不知道为什么会发生这种情况。试着改用
dailrollingfileappender
,看看这是否有效。

日志4j日志文件出现在tomcat的bin目录中,因为您没有告诉它这样做

描述了如何集成log4j,包括使用
${catalina.out}
替换来引用tomcat根目录。这些说明也涉及log4j属性文件格式,不清楚它是否适用于log4j.xml


至于文件大小问题,我不知道为什么会发生这种情况。试着改用
dailrollingfileappender
,看看这是否有效。

tomcat的bin目录中应该没有日志文件。您指的是什么文件?日志文件(fatal.log、others.log和trace.log)是在tomcat的bin中创建的,因为我的项目是一个使用tomcat的web应用程序,因此创建日志文件的根路径将是tomcat的bin。当我运行一个不使用tomcat的日志junit测试类时,日志被放置在项目源代码中。tomcat的bin目录中应该没有日志文件。您指的是什么文件?日志文件(fatal.log、others.log和trace.log)是在tomcat的bin中创建的,因为我的项目是一个使用tomcat的web应用程序,因此创建日志文件的根路径将是tomcat的bin。当我运行一个不使用tomcat的日志junit测试类时,日志被放置在项目源代码中。