Максимальный размер файла Log4j

Проблема с log4j заключается в том, что когда я указываю maxfilesize, он работает правильно для файлов, сгенерированных в папке src проекта, но файлы журнала, созданные в корзине tomcat, не разбиваются на отдельные файлы, а затем у меня есть большой файл журнала, который не желательно. Ниже приведен файл 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>

Кто-нибудь знает, как я могу это исправить?

Спасибо за внимание.


person Community    schedule 27.07.2009    source источник
comment
В каталоге bin tomcat не должно быть файлов журнала. Какие файлы вы имеете в виду?   -  person skaffman    schedule 27.07.2009
comment
файлы журнала (fatal.log, other.log и trace.log) создаются в корзине tomcat, потому что мой проект представляет собой веб-приложение, которое использует tomcat, поэтому его корневой путь для создания файлов журнала будет корзиной tomcat. когда я запускаю тестовый класс junit для ведения журнала, который не использует tomcat, тогда журналы помещаются в источник проекта.   -  person    schedule 27.07.2009


Ответы (1)


Файлы журнала log4j появляются в каталоге bin вашего tomcat, потому что вы не сказали ему делать иначе.

документы tomcat здесь описывают, как интегрировать log4j, включая использование замена ${catalina.out} для ссылки на корневой каталог tomcat. Инструкции также относятся к формату файла свойств log4j, неясно, будет ли он работать для log4j.xml.

Что касается проблемы с размером файла, я не уверен, почему это происходит. Попробуйте вместо этого использовать DailyRollingFileAppender и посмотрите, сработает ли это.

person skaffman    schedule 28.07.2009