最近同事提了一个需求过来,他觉得项目对于第三方日志记录的太多了,只想记录一些业务相关的日志减少对于框架日志的显示。
具体要求就是对于框架日志只显示warn等级以上的,而业务日志显示info等级以上的。
这里主要使用的是slf4j与logback结合的方法。使用过滤器来实现对日志的过滤。
首先是现在项目内封装一个日志管理工具。在需要使用到日志记录程序运行状态时直接调用该方法,而不是重新生成一个Logger对象。
这个地方有需要考虑取舍的,比如如果我直接在类中声明创建一个Logger那么在日志记录的时候我可以直接通过看Logger的name就能知道我这个Logger是记录在哪里的,方便迅速排查问题。但是对于对日志记录格式有操作需求的,就需要自己封装。这里指的并不是对于显示线程,显示日期之类的要求,那些只需要规定好pattern格式就可以了。
首先先介绍一下用到的maven依赖:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>3.0.7</version>
</dependency>