Писать в аппендер только сообщения определенного уровня:
| Код | LevelRangeFilter rangeFilter = new LevelRangeFilter(); rangeFilter.setLevelMax(Level.OFF); rangeFilter.setLevelMin(Level.WARN); ConsoleAppender errAppender = new ConsoleAppender(new PatternLayout("%d{dd-MM-yyyy HH:mm:ss.SSS} | %-5p | %m%n"), "System.err"); errAppender.addFilter(rangeFilter); |
Или в конфигурационном файле прописать, что-то вроде:
| Код | <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
<appender name="Console" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p: %m%n"/> </layout> </appender>
<appender name="File" class="org.apache.log4j.FileAppender"> <param name="File" value="main.log"/> <param name="Append" value="false"/> <param name="BufferedIO" value="false"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d [%-5p] %m {at %c}%n"/> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMax" value="OFF"/> <param name="LevelMin" value="INFO"/> </filter> </appender>
<appender name="DebugFile" class="org.apache.log4j.FileAppender"> <param name="File" value="debug.log"/> <param name="Append" value="false"/> <param name="BufferedIO" value="false"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d [%-5p] %m {at %c}%n"/> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMax" value="DEBUG"/> <param name="LevelMin" value="ALL"/> </filter> </appender>
<root> <priority value ="ALL"/> <appender-ref ref="Console"/> <appender-ref ref="File"/> <appender-ref ref="DebugFile"/> </root>
</log4j:configuration> |
|