SpringBoot基础篇日志管理之logback配置文件

SpringBoot默认选用logback进行日志管理,前一篇讲述了默认配置日志的参数,然而这些内容比较初级,并不一定能满足我们更加特殊的需求(比如输出到多个不同的配置文件,不同的包路劲选择不同的输出方式等)

所以本篇的内容,主要介绍logback.xml配置文件的语法,虽然与SpringBoot本身没有太多的关联性,但在SpringBoot项目中却非常实用

I. logback配置

也不针对语法进行逐一说明了,直接针对常见的xml配置文件进行分析,反正看完也会忘的,等到要用的时候,一般都是拷贝一个魔板,改改名啥的就over了



    
    
    
    
        
            %d [%t] %-5level %logger{36}.%M\(%file:%line\) - %msg%n
            
            UTF-8
        
    

    
    
    
    
        
        
            INFO
        
        logs/story.log
        
        
        
            
            
            logs/arch/story.%d.%i.log
            
            3
            
                
                10MB
            
        
        
            
            
                %d %p (%file:%line\)- %m%n
            
            
            UTF-8
        
    

    
    
    
    
        
        
    

    
        
        
    

    
    
        
    

1. appender

从前面的配置文件中,appender这个标签算是比较重要的,上面定义了两类,一个控制台输出,一个文件输出

a. 控制台or文件的选择

appender的class属性来选择

  • 控制台: ch.qos.logback.core.ConsoleAppender
  • 滚动时间窗口文件:ch.qos.logback.core.rolling.RollingFileAppender

b. 输出格式

以实例 %d [%t] %-5level %logger{36}.%M\(%file:%line\) - %msg%n 进行说明

{% blockquote 官网翻译@一灰灰Blog https://logback.qos.ch/manual/layouts.html%}

  • %m输出的信息,
  • %p日志级别,
  • %t线程名,
  • %d日期,
  • %c类的全名,
  • %i索引【从数字0开始递增】
  • %M方法名
  • %lines输出日志的行数
  • %F/%file源码文件名

{% endblockquote %}

c. 日志归档相关

一般是每天归档一下日志文件,避免所有的日志都堆积到一个文件,当单文件特别大时,分析也不是一件容易的事情,常见的两个设置参数


3

    
    10MB

2. logger

另外一个标签就是logger了,name表示哪些包路径下的日志输出会匹配这个(或者logger直接使用了这个name,也会匹配他)

另外两个重要的属性,level表示输出日志的级别,挺实用的,可以根据实际场景设置某些日志输出,如框架层我只关系WARN级别日志;我自己的业务可能就像关注INFO的日志了

additivity 这个属性,很容易不设置,如果不设置,那么当一个日志输出,有多个logger匹配时,这个日志就会被输出多次,建议设置为false

II. 使用

根据前面配置的博文说明,logback.xml配置文件,推荐的用法是

  • 命名为 logback-spring.xml
  • 放在资源文件的根目录,或者config目录下

一般输出日志的用法,最常见的两种方式

// 创建LOGGER对象
private static final Logger LOGGER = LoggerFactory.getLogger(SelfBeanLoader.class);

// 输出日志的地方
LOGGER.info("info: {}", xxxx);

第二中就是使用lombok的 @Slf4j 注解

@Slf4j
public class SelfBeanLoader {
  ...
  // 输出日志的地方
  log.info("xxx");
}

III. 其他

0. 项目

  • 工程:spring-boot-demo

推荐相关博文阅读

  • Logback 简明使用手册
  • 180623-SpringBoot之logback配置文件

你可能感兴趣的:(logback,Spring,Boot)