2

I would like to configure the logs for a simple app running in a tomcat and i'd like to send all logs except error level ones to one file, and the errors to other one.

How should i configure the log4j.xml to make it works?

<appender name="regular-container" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="regularLogs.log" />
</appender>

<appender name="error-container" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="errorLogs.log" />
</appender>

<logger name="regular-container">
 ?????????????????????
</logger>

<logger name="error-container">
 ?????????????????????
</logger>
user4919313
  • 125
  • 11

2 Answers2

1

Try this log4j.xml:

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

    <appender name="errorsOnly" class="org.apache.log4j.RollingFileAppender">
        <param name="file" value="errorLogs.log" />
        <param name="threshold" value="ERROR" />
    </appender>

    <appender name="regular" class="org.apache.log4j.RollingFileAppender">
        <param name="file" value="regularLogs.log" />
        <param name="threshold" value="DEBUG" />
    </appender>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="errorsOnly" />
        <appender-ref ref="regular" />
    </root>

</log4j:configuration>

Note that this includes FATAL logging in errorsOnly, though I assume that's okay. Having errorsOnly first with threshold set to ERROR means error level or above are handled by errorsOnly. DEBUG or higher not yet handled by errorsOnly are then handled by regular. I found a similar issue providing another example.

Neil
  • 5,762
  • 24
  • 36
0

Thanks for answer, but it didnt work. Using filter parameter for each appender, yes.

<filter class="org.apache.log4j.varia.LevelRangeFilter">
        <param name="levelMin" value="ERROR" />
        <param name="levelMax" value="FATAL" />
    </filter> 
user4919313
  • 125
  • 11