java - 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: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 目录中,因为您没有告诉它这样做。

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

至于文件大小问题,我不确定为什么会这样。尝试改用 DailyRollingFileAppender,看看是否可行。

关于java - Log4j 最大文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1187254/

相关文章:

java - ADB 无线

java - 计算文件中数字平均值的程序(涉及 try/catch block )

android - 如果服务器因超时而关闭,应用程序会崩溃。我怎样才能捕获它?

linux - 关于 rfc 的系统日志问题

java - 强制 JNI Get<type>ArrayElements 返回指针

java - 按下任何键时鼠标无法移动Java Swing

jsp - 到已编译的 jsp(servlet)的 url 映射不起作用

java - tomcat 如何在 Eclipse 中运行我的项目?

java - Log4j 不打印到文件或标准输出

java - GWT 中的 SLF4J 和 LogBack 配置(Eclipse 和 Jetty)