SpringBoot开发案例之整合日志管理

概述
参考文档:Logging

这里顺便引用以下部分原文,当然看不明白也没关系,我们有有道翻译,如果翻译的不准确,后面会提供详细配置分享给大家。

Spring Boot uses Commons Logging for all internal logging, but leaves the underlying log implementation open. Default configurations are provided for Java Util Logging, Log4J2 and Logback. In each case loggers are pre-configured to use console output with optional file output also available.
By default, If you use the ‘Starters’, Logback will be used for logging. Appropriate Logback routing is also included to ensure that dependent libraries that use Java Util Logging, Commons Logging, Log4J or SLF4J will all work correctly.

使用pom.xml相关配置就不跟大家在这里扯了,依赖自行添加。

Console output
配置日志的相关参数也只需要写在 application.properties或者application.yml中就可以了,当然,这仅仅是基础的配置。

#官方文档中有提到, SpringBoot 的 Logging 配置的级别有7个:TRACE , DEBUG , INFO , WARN , ERROR , FATAL , OFF
#root日志以INFO级别输出
logging.level.root=INFO
#springframework.web日志以WARN级别输出
logging.level.org.springframework.web=WARN
#hibernate日志以ERROR级别输出
logging.level.org.hibernate=ERROR

加入以上配置后,我们启动项目,就可以在控制台打印Log信息了。

但是,在生产环境中,日志往往要以文件形式存放到服务器,下面介绍一下spring-boot日志的文件输出方式。

File output

logging.file=spring_boot.log
logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n
logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n

配置完成以后,我们再次启动项目,这时候会在根目录下生成一个spring_boot.log日志文件。

但是,经历过项目上线的小伙伴,其实这样配置远远达不到生产要求。比如,区分普通日志和错误日志,按照日期存储日志,配置单个日志文件最大容量,删除多少天之前的文件等等!下面与大家分享一款更高级的配置。

Custom log configuration
Depending on your logging system, the following files will be loaded:

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

spring-boot日志管理支持Logback,Log4j2以及Log4j,根据以上说明,我们可以定义文件命名。

下面我们使用Logback的指定配置文件实现更高级的日志配置。

logback-spring.xml:




    spring-boot-log
    
    
    
        log/spring-boot-log-info.log
        
        
             
            log/spring-boot-log-info-%d{yyyy-MM-dd}.%i.log
            
                128MB
            
            
            30
        
        true
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n
            utf-8
        
        
            info
            ACCEPT
            DENY
        
    
     
    
        log/spring-boot-log-error.log
        
        
            
            log/spring-boot-log-error-%d{yyyy-MM-dd}.%i.log
            
                2MB
            
            
            180
        
        true
        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n
            utf-8
        
        
        
             
             ERROR
             
             ACCEPT
             
             DENY
        
    
    
    
        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n
            utf-8
        
        
        
            INFO
        
    
    
    
        
        
        
    
    
        
        
        
    

如果我们使用了 Logback 的指定配置文件的话,那么application.properties 中的配置可以取消了。

测试
配置完成后,我们做一个测试,为了测试方便把info和error日志容量maxFileSize都改为2MB。

然后启动程序:

/**
 * 创建者  https://blog.52itstyle.com
 * 创建时间 2017年7月24日
 */
@EnableAutoConfiguration
public class Application  {
    private static final Logger logger = LoggerFactory.getLogger(Application.class);

    public static void main(String[] args) throws InterruptedException {
        SpringApplication.run(Application.class, args);
          while(true){
            logger.info("普通日志");
            logger.error("错误日志");
          }
    }
}

执行一段时间,如果在项目路径下生成以下日志文件说明配置成功。

SpringBoot开发案例之整合日志管理_第1张图片

代码: http://git.oschina.net/52itstyle/spring-boot-log

作者: 小柒

出处: https://blog.52itstyle.com

你可能感兴趣的:(SpringBoot开发案例之整合日志管理)