log4j 2过滤spring日志遇到的问题
在项目中使用testng写单元测试,使用log4j输出日志,spring的日志也被打印出来,在调试的时候看到一片一片的spring日志很烦,总是要找自己的输出日志。
这样式的~~~
找了一下log4j2的日志过滤,很简单,在logger定义名字的时候指定包名即可。
<logger name="com.wangc" level="debug">
<AppenderRef ref="Console" />
<AppenderRef ref="test_log"/>
</logger>
<Root level="info">
<AppenderRef ref="Console" />
</Root>
com.wangc 包里的类使用debug级别,方便调试,并同时输出到文件和控制台。
使用Root 的info级别,控制其他第三方包的日志。
或者使用:
<logger name="org.springframework" level="INFO"></logger>
<Root level="debug">
<AppenderRef ref="Console" />
</Root>
ROOT使用debug级别,并指定org.springframework 使用info级别。
很简单,但是!!!在这个项目中并没有起作用,以为是log4j2的配置问题,反反复复的查找问题。
后来发现乌鸦在log4j2中定义的日志模板为
<PatternLayout pattern="[%-5p] %d %c - %m%n"/>
与上面spring输出的日志不一样,看来spring并没有使用乌鸦定义的log4j2配置。
仔细看了一下小伙伴创建的项目,使用的是spring-boot,默认使用了logback。在pom文件排除该包的依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
搞定!!!
PS:多此一举,spring-boot集成的logback是一个更优秀的日志框架!!!去TM的log4j吐~~~
本文链接:http://bigerhead.com/2018/03/438.html 转载请注明出处。
“报名” 应该为“包名”
越来越厉害了,加油,gogo!
哇,你好棒啊,这都能看出来。