log4j日志优先级导致的不输出日志

时间:2022-06-12 06:58:45

在sae部署微信代码的时候,发现它的默认日志很不友好,看起来很费劲,详细看了一下说明发现它可以根据log4j的输出级别而分类输出,就拖了一个log4j的xml文件扔进项目代码,然后部署运行,发现没有日志输出..怪了,本地部署也没日志输出,看了下日志配置:

<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p - [%C{1}] %m%n"/>
</layout>
</appender>
<root>
<level value="warn"/>
<appender-ref ref="STDOUT"/>
</root>

貌似没问题,指定的控制台输出,怎么没日志输出呢,难道配置文件有误?开启log4j的调试模式,在eclipse中的run configuration中添加如下参数:

log4j日志优先级导致的不输出日志

再次运行,无任何问题..无奈,本地将日志的info,warn,error,debug都输出一句,发现只有error和warn输出,看来是日志级别设置的问题,看了一下原日志的级别是warn:

<root>
<level value="WARN"/>
<appender-ref ref="STDOUT"/>
</root>

居然是warn..难怪没有日志..

日志记录的优先级由高到低分为 :
OFF ,FATAL ,ERROR ,WARN ,INFO, DEBUG, ALL。
Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这五个级别。

由于我们设置的是warn,所以只能输出warn和比warn级别高的..