项目中出现大量DEBUG级别的日志

Posted 二木成林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目中出现大量DEBUG级别的日志相关的知识,希望对你有一定的参考价值。

异常

项目打印大量的 DEBUG 级别的日志:

17:32:22.595 [Xmemcached-Reactor-2] DEBUG net.rubyeye.xmemcached.impl.MemcachedHandler - Check session (%s) is alive,send heartbeat
17:32:22.595 [Xmemcached-Reactor-2] DEBUG com.google.code.yanf4j.core.impl.AbstractSession - After encodingversion

17:32:22.595 [Xmemcached-Reactor-2] DEBUG net.rubyeye.xmemcached.impl.Optimizer - Optimieze merge buffer:version

17:32:22.595 [Xmemcached-Reactor-2] DEBUG com.google.code.yanf4j.core.impl.AbstractSession - send buffers:
[
 buffer:position=0,limit=9,capacity=9
]
17:32:22.595 [Xmemcached-Reactor-2] DEBUG com.google.code.yanf4j.core.impl.AbstractSession - read 16 bytes from channel

原因

但是我所使用的 log4j.properties 中并没有配置这种级别的日志:

log4j.rootLogger=info, logfile,console
log4j.logger.org.apache.commons.httpclient.HttpMethodBase = error, logfile,console
#设定控制台输出模式
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%dyyyy-MM-dd HH:mm:ss] [%-3p] %c1: %m%n
#设定日志文件的输出模式
log4j.appender.logfile =org.apache.log4j.RollingFileAppender
log4j.appender.logfile.DatePattern=yyyyMMdd
log4j.appender.logfile.File=E://logs//xxx.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%dyyyy-MM-dd HH:mm:ss [%-3p] %c1: %m%n
log4j.appender.logfile.MaxFileSize=100MB
log4j.appender.logfile.MaxBackupIndex=100
log4j.appender.logfile.Threshold = info

经过在网上查找资料得知可能是项目中还使用了 logback 日志包。查看所有的包果然发现了 logback 包:logback-classiclogback-core

解决

我们还必须知道这两个 logback 包是由哪个依赖引入的,这里采用的是 IDEA 的插件 Maven Helper 来检索到的。

发现跟 spring-boot 有关,而 spring-boot 的maven导入坐标如下:

        <dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-web</artifactId>
    		<version>2.0.5.RELEASE</version>
		</dependency>

深入进去查看,果然是由 spring-boot 引入的

那么我们只需要在引入 spring-boot 的时候排除这两个依赖项就可以了,即修改 spring-boot 的导入坐标如下:

        <dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-web</artifactId>
    		<version>2.0.5.RELEASE</version>
			<exclusions>
				<exclusion>
					<groupId>ch.qos.logback</groupId>
					<artifactId>logback-classic</artifactId>
				</exclusion>
				<exclusion>
					<groupId>ch.qos.logback</groupId>
					<artifactId>logback-core</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

即通过 <exclusion></exclusion> 标签项来排除不想要引入的依赖。

参考资料

以上是关于项目中出现大量DEBUG级别的日志的主要内容,如果未能解决你的问题,请参考以下文章

(十四)日志

RabbitMQ 通过记日志来看routingkey

RabbitMQ 通过记日志来看routingkey

日志实践推荐

日志入门一:日志级别

python中的logging模块