Springboot日志框架logback与log4j2

目录

Springboot日志使用

Logback日志

日志格式

自定义日志格式

日志文件输出

Springboot启用log4j2日志框架


Springboot日志使用

Springboot底层是使用slf4j+logback的方式进行日志记录

Logback日志

trace:级别最低

debug:调试级别的,常用于跟踪程序的进展

info:普通的打印信息(默认的日志级别)

warn:警告级别,不影响使用,但应该注意

error:错误级别,错误日志信息打印

fatal:致命级别,因代码异常导致程序退出,级别最高

日志级别

Trace-> debug-> info-> warn-> error-> fatal

logger.trace("trace");跟踪

logger.debug("debug");调试

logger.info("info");信息

logger.warn("warn");告警

logger.error("error");异常

Springboot日志框架logback与log4j2_第1张图片

logging:
  level:
    root: trace

logging:
  level:
    com:
    example: trace

Springboot日志框架logback与log4j2_第2张图片

Springboot日志框架logback与log4j2_第3张图片

日志格式

1、时间日期:精确到毫秒

2、日志级别:ERROR,WARN,INFO,DEBUG,TRACE

3、进程ID:

4、分隔符:— 标识实际日志的开始

5、线程名:方括号括起来(可能会截断控制台输出)

6、Logger名:通常使用源代码的类名

7、日志内容:

自定义日志格式

%clr(%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}){yellow}

docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging

Springboot日志框架logback与log4j2_第4张图片

日志文件输出

默认情况下,springboot仅记录到控制台,不写日志文件。

若要输出日志文件,需设置logging.file.name或logging.file.path属性

logging:
  level:
    com:
    example: trace
  #logging.pattern.dateformat -> LOG_DATEFORMAT_PATTERN
  #https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging
  #pattern:
  #  dateformat: yyyy-MM-dd HH:mm:ss.SSS
  file:
    #log文件默认在项目的相对路下
    name: D:/test/log/demo.log

Springboot日志框架logback与log4j2_第5张图片

file:
    #默认文件名spring.log
#    name: D:/test/log/demo.log
    #log文件默认在项目的相对路下
    path: D:/test/log/

Springboot日志框架logback与log4j2_第6张图片

logging:
  level:
    com:
    example: trace
  #logging.pattern.dateformat -> LOG_DATEFORMAT_PATTERN
  #https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging
  #pattern:
  #  dateformat: yyyy-MM-dd HH:mm:ss.SSS
  file:
    #默认文件名spring.log
    name: D:/test/log/demo.log
    #log文件默认在项目的相对路下
#    path: D:/test/log/
    # 最大日志文件大小(默认为10MB,这里为了测试归档,暂时设置为5KB)
    max-size: 5KB
    # 要保留的日志备份的总大小(默认为0B)
    total-size-cap: 1GB
    # 保存存档日志文件的最大天数(默认为7天)
    max-history: 7

Springboot日志框架logback与log4j2_第7张图片

Springboot日志框架logback与log4j2_第8张图片



    
    
    
    
    
    
        
            ${log.pattern}
        
    
    
    
        ${log.path}/info.log
        
        
            
            ${log.path}/sys-info.%d{yyyy-MM-dd}.log
            
            60
        
        
            ${log.pattern}
        
        
            
            INFO
            
            ACCEPT
            
            DENY
        
    
    
    
        ${log.path}/debug.log
        
        
            
            ${log.path}/sys-debug.%d{yyyy-MM-dd}.log
            
            60
        
        
            ${log.pattern}
        
        
            
            DUBUG
            
            ACCEPT
            
            DENY
        
    
    
        ${log.path}/error.log
        
        
            
            ${log.path}/error.%d{yyyy-MM-dd}.log
            
            60
        
        
            ${log.pattern}
        
        
            
            ERROR
            
            ACCEPT
            
            DENY
        
    
    
    
        ${log.path}/user.log
        
            
            ${log.path}/sys-user.%d{yyyy-MM-dd}.log
            
            60
        
        
            ${log.pattern}
        
    

    
        
    
    
    
        
        
        
    
    
    
        
    

Springboot启用log4j2日志框架


    org.springframework.boot
    spring-boot-starter-web
    
        
            org.springframework.boot
            spring-boot-starter-logging
        
    




    org.springframework.boot
    spring-boot-starter-log4j2

Springboot日志框架logback与log4j2_第9张图片





    
    
        
        ./logs
        
        test
    
    
    
        
        
            
            
        
        
        
        
        
            
            
            
                
                
                
                
                
                
                
                
            
            
            
            
            
                
                
                
                    
                    
                    
                    
                    
                    
                
            
        
    
    
    
        
        
        
            
        
        
        
        
            
        
    

Apache Log4j2 (Log4j – Apache Log4j 2)是对Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并参考了Logback中优秀的设计,同时修复了Logback架构中的一些问题。被誉为是目前最优秀的Java日志框架;企业中通常使用SLF4j门面+Log4j2来记录日志。

Springboot日志框架logback与log4j2_第10张图片

SLF4J: Found provider [ch.qos.logback.classic.spi.LogbackServiceProvider@11c20519]

SLF4J: Found provider [org.apache.logging.slf4j.SLF4JServiceProvider@70beb599]

Springboot日志框架logback与log4j2_第11张图片

存在依赖冲突,解决办法

org.springframework.boot

spring-boot-starter-logging

Springboot日志框架logback与log4j2_第12张图片

排查发现

spring-boot-starter-actuator

springfox-swagger2

springfox-swagger-ui

spring-boot-starter-web

需排除logback依赖否则会与log4j2产生依赖冲突


            org.springframework.boot
            spring-boot-starter-actuator
           
               
                    org.springframework.boot
                    spring-boot-starter-logging
               

           

       

       
            io.springfox
            springfox-swagger2
            2.9.2
           
               
                    org.springframework.boot
                    spring-boot-starter-logging
               

           

       

       
            io.springfox
            springfox-swagger-ui
            2.9.2
           
               
                    org.springframework.boot
                    spring-boot-starter-logging
               

           

       

       

log4j2+Mybatis

Mybatis日志交给log4j2管理

mybatis-config.xml




    
        
    

log4j2.xml





    
    
        
        ./logs
        
        wms
    
    
    
        
        
            
            

        
       
        
            
            
            
            
            
                
                
                
                
                
                
                
                
            
            
            
                
                    
                    
                    
                    
                    
                    
                
            
        

    
    
    
        
        
        

            
        
        
        
        
            
            
        
    

你可能感兴趣的:(spring,boot,logback,log4j)