【问题标题】:Log4j MaxfilesizeLog4j 最大文件大小
【发布时间】:2009-07-27 09:22:46
【问题描述】:

我在使用 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>

有人知道我该如何解决吗?

感谢您的考虑。

【问题讨论】:

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

标签: java tomcat log4j


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2013-08-07
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多