我的要求有点奇怪。
我想要不同的日志记录级别的不同格式化模式,这就是我使用此代码的原因。但我无法设置最小和最大限制。因为当我将日志级别设置为Debug时,它也以该格式打印ERROR和FATAL日志消息,但是我为ERROR和FATAL定义了不同的格式,因为此ERROR消息正在为此代码打印两次。我不想以DEBUG模式格式打印ERROR和FATAL日志消息。
log4j.rootLogger=DEBUG, infoLog, errorLog
log4j.appender.infoLog=org.apache.log4j.ConsoleAppender
log4j.appender.infoLog.Target=System.out
log4j.appender.infoLog.layout=org.apache.log4j.PatternLayout
log4j.appender.infoLog.layout.ConversionPattern=%m%n
#log4j.appender.infoLog.Threshold=DEBUG
log4j.appender.infoLog.filter.a=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.infoLog.filter.a.LevelToMatch=INFO
log4j.appender.infoLog.filter.a.AcceptOnMatch=true
log4j.appender.infoLog.filter.a.LevelMin=DEBUG
log4j.appender.infoLog.filter.a.LevelMax=INFO
#log4j.appender.infoLog.filter.b=org.apache.log4j.varia.LevelMatchFilter
#log4j.appender.infoLog.filter.b.LevelToMatch=DEBUG
#log4j.appender.infoLog.filter.b.AcceptOnMatch=true
log4j.appender.errorLog.Threshold=ERROR
log4j.appender.errorLog=org.apache.log4j.ConsoleAppender
log4j.appender.errorLog.Target=System.out
log4j.appender.errorLog.layout=org.apache.log4j.PatternLayout
log4j.appender.errorLog.layout.ConversionPattern=\u001b[31;1m%d{yyyy-MM-dd HH:mm:ss} [%-5p] %c{1}:%M():%L - %m%n
答案 0 :(得分:1)
此xml配置将解决此问题。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="debugLog" class="org.apache.log4j.ConsoleAppender">
<param name="Threshold" value="DEBUG"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="DEBUG"/>
<param name="LevelMax" value="INFO"/>
</filter>
</appender>
<appender name="errorLog" class="org.apache.log4j.ConsoleAppender">
<param name="Threshold" value="WARN"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p] %c{1}:%M():%L - %m%n"/>
</layout>
</appender>
<root>
<level value="DEBUG"></level>
<appender-ref ref="debugLog"/>
<appender-ref ref="errorLog"/>
</root>
</log4j:configuration>