log4j: ошибки в файле ошибок - PullRequest
2 голосов
/ 14 июня 2011

У меня есть класс, события которого я хочу регистрировать. Скажем, есть 2 уровня: отладка и ошибка. Как я могу регистрировать ошибки в errorFile и отладочную информацию в debugFile?

Так что я использую log4j.xml, есть механизм фильтрации, но он работает только для разных категорий, а не внутри одного класса.

Пожалуйста, помогите новичку. =)

1 Ответ

3 голосов
/ 14 июня 2011

Вы должны определить и использовать два приложения с разными Порог , например:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <!-- Error -->
    <appender name="ErrorFile"
         class="org.apache.log4j.RollingFileAppender">
        <param name="Threshold" value="error"/>
        <param name="file" value="log.err" />
        <param name="MaxFileSize" value="10MB" />
        <param name="MaxBackupIndex" value="10" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %d %C.%M (%L) - %m%n" />
        </layout>
    </appender>

    <appender name="LogFile"
         class="org.apache.log4j.RollingFileAppender">
        <param name="Threshold" value="debug"/>
        <param name="file" value="log.log" />
        <param name="MaxFileSize" value="10MB" />
        <param name="MaxBackupIndex" value="10" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %d %C.%M (%L) - %m%n" />
        </layout>
    </appender>

    <logger name="foo.bar" additivity="false">
        <level value="debug" />
        <appender-ref ref="LogFile" />
        <appender-ref ref="ErrorFile" />
    </logger>

    <root>
        <priority value="warn" />
        <appender-ref ref="ErrorFile"/>
    </root>

</log4j:configuration>

На этот вопрос также есть ответы в log4j FAQs .


Только что найдено решение LogToAppenderByLevel ( здесь ), которое также может быть полезным для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...