最近在测试一个项目,由于还在调试阶段,所以需要多观察日志来发现一些问题,但是感觉日志的可读性不是很高,有很多干扰的信息,其实真正需要关注的是自己定义的 INFO 级别的信息。但是控制台输出过多的 DEBUG 的信息,并且我还有一个定时调度任务也在不断的输出信息,很影响排错效率,于是决定看下能不能通过修改 log4j.properties 文件来达到目的。
尝试能否通过添加配置,实现屏蔽某个类的日志输出:
### Disable Class ###
log4j.logger.org.springframework=ERROR
log4j.logger.org.quartz=ERROR
如上配置后发现行不通,一直在想是不是哪里的姿势不对。
经过一番查找,发现 log4j.properties 并不能实现该功能。不知道是不是天生短板。如果想要达到效果,还得需要把 log4j.properties 替换为 log4j.xml 文件(虽然log4j2.xml 已经出来了),在这两个文件,实际在功能性上差不太多,因为后缀的不同,所以里面的格式有点区别。 还有 log4.properties 不具备 Filter 属性来达到拦截日志级别的需求,而 log4j.xml 满足,并且 log4j.xml 插入数据库的时候 sql 写在 layout 属性的 ConversionPattern 参数中,而 log4.properties 则有单独的 sql 属性接受配置文件中的 sql 语句,这里推荐使用 log4j.xml。
过滤配置:
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="levelMin" value="INFO"/>
<param name="levelMax" value="ERROR"/>
</filter>
</appender>
通过以上配置你会发现,控制台只会显示你自己定义的 INFO 信息,还有程序的报错信息,大大减少了干扰,提升了可读性。
未经允许不得转载:极客萌动 » 日志文件 log4j.properties 替换为 log4j.xml