SpringBoot系列-日志配置进阶篇

点击上方“Java碎碎念”,关注公众号

优质文章,第一时间送达

上一篇文章《SpringBoot系列-日志配置基础篇》介绍了通过日志级别和一些基本的配置,本文将介绍下通过logback-spring.xml配置实现一些更高级的功能。

本文目录

一、配置文件命名规范二、配置文件简介三、SpringProfile使用

一、配置文件命名规范

SpringBoot日志系统有自己的默认配置,覆盖默认配置很简单,只要我们把自己的xml配置文件命名好然后放到resources目录下即可。

各个日志系统的命名规范:

日志系统 配置文件名
Logback logback-spring.xml, logback-spring.groovy, logback.xml, or logback.groovy
Log4j2 log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging) logging.properties

SpringBoot官方推荐优先使用带有-spring的文件名作为日志配置(如使用logback-spring.xml,而不是logback.xml),命名为logback-spring.xml的日志配置文件可以使用springProfile、springProperty等标签,从而可以进行一些更灵活的配置。

二、配置文件简介

配置文件精简结构如下:



    
    
    
    
    

    日志项目 
     
    
        
            %-4relative [%thread] %-5level %logger{35} - %msg %n 
        

    

    
    
        ${smtpHost}
        ${smtpPort}
        ${username}
        ${password}
        true
        ${SSL}
        ${email_to}
        ${email_from}
        ${email_subject}
     
        
            %date%level%thread%logger{0}%line%message
        
     
        
            ERROR
            ACCEPT
            DENY
        
        
            
            1
        
     



    

    
    
        
            
        
    

    
    
        
            
            
        
    

  

各个配置项的含义如下:

  • contextName

每个logger都关联到logger上下文,默认上下文名称为“default”。但可以使用contextName标签设置成其他名字,用于区分不同应用程序的记录

  • property

用来定义变量值的标签,property标签有两个属性,name和value;其中name的值是变量的名称,value的值是变量定义的值。通过property定义的值会被插入到logger上下文中。定义变量后,可以使“${name}”来使用变量。

  • logger

用来设置某一个包或者具体的某一个类的日志打印级别以及指定appender。

  • root

根logger,也是一种logger,且只有一个level属性

  • appender

负责写日志的组件,主要有下面3种:

  1. ConsoleAppender:把日志输出到控制台

  2. FileAppender:把日志输出到文件

  3. RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。它是FileAppender的子类。

三、SpringProfile使用

SpringProfile可以指定某段配置只在某个环境下生效。

比如,如果需要在生产环境打印到控制台和邮件监控,而测试环境只打印日志到控制台,下面的配置就可以实现:


    
        
            
        
    

    
    
        
            
            
        
    

到此logback-spring.xml中一些常用的配置介绍完了,有任何问题欢迎留言沟通哦!

推荐阅读

1.SpringBoot系列-日志配置基础篇
2.SpringBoot集成JWT实现权限认证
3.一分钟带你了解JWT认证!
4.SpringBoot中如何优雅的读取yml配置文件?
5.SpringBoot中如何灵活的实现接口数据的加解密功能?


限时领取免费Java相关资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并发分布式、大数据、机器学习等技术。
关注下方公众号即可免费领取:

Java碎碎念公众号

你可能感兴趣的:(SpringBoot系列-日志配置进阶篇)