Spring Boot微服务设置logback日志打印级别并关闭kafka debug日志


摘要:以关闭Spring Boot微服务kafka日志为例,介绍logback日志框架中logger标签的属性。

问题描述

??在Spring Boot整合kafka的时候,日志配置使用 logback.xml,引用中引用了kafka的生产者和消费者。在应用启动后,发现控制台疯狂打印类似如下的kafka日志片段:

// 虽然启动成功后只打印一次,但是,懒婆娘的裹脚——又臭又长
INFO -o.a.k.c.consumer.ConsumerConfig - ConsumerConfig values: 
	allow.auto.create.topics = true
	auto.commit.interval.ms = 5000
	auto.offset.reset = latest
...
// 一直刷屏的 Kafka 核心日志片段
[KafkaConsumerDestination{consumerDestinationName='test', partitions=1, dlqName='test'}.container-0-99-1] DEBUG-o.apache.kafka.clients.NetworkClient
[KafkaConsumerDestination{consumerDestinationName='test', partitions=1, dlqName='test'}.container-0-99-1] DEBUG-o.a.k.c.consumer.internals.Fetcher
[KafkaConsumerDestination{consumerDestinationName='test', partitions=1, dlqName='test'}.container-0-99-1] DEBUG-o.a.k.clients.FetchSessionHandler 

??导致无法查看正常的其它日志,显而易见,KafkaConsumerDestination等信息是kafka的日志,与业务日志无关。如何关闭这些日志呢?

??解铃还须系铃人,通过分析日志信息,发现它们是由org.apache.kafka.clients.xxx打印的,故使用如下配置提升org.apache.kafka.clients中日志输出级别,问题迎刃而解:


??当然,level可以根据需要修改,也可以选用info或者off。logback.xml 中部分配置代码如下:

<?xml version="1.0" encoding="UTF-8" ?>

    
    

    
    
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS}[%thread] %-5level %logger{50} - %msg%n
        
    

    
    
        
            
            ${LOG_HOME}/%d{yyyy-MM-dd}.%i.log
            50MB
            
            30
        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS}[%thread] %-5level %logger{50} - %msg%n
        
    

    
    
        
        
    
     
    
    
		
	

如何解决

??只需要在logback.xml文件中加入下面的语句,就可以通过提升kafka的日志打印级别来减少日志打印,避免刷屏:

 	
	/>

??name属性后面的包名可以自由发挥,用于指定想提升日志级别的包名。上述配置起到的作用如下:设置包名 org.apache.kafka.clients 下各个类日志打印级别为 warn,additivity属性为false,表示此loger的打印信息不再向上级传递。

设置logger标签

??logger标签用来设置某一个包或者某一个具体类的日志打印级别,同时可以指定https://blog.csdn.net/zhongguowangzhan/article/details/108857061

相关