SpringBoot学习笔记四:log日志的使用

一、spring boot的默认日志系统

spring boot使用log back作为默认的日志系统。log back的引入在搭建springboot框架引入
spring-boot-starter时就已经完成了。因此当项目中没有任何log有关的配置文件以及配置项,并且也没有在pom文件中额外引入任何log有关的依赖时,运行起来是这样的:
SpringBoot学习笔记四:log日志的使用_第1张图片
即从info级别开始输出,并且此时不会有日志文件生成。

二、在application.proprtties(yml)中配置log

第一种方式即完全使用spring boot的默认配置显然无法满足实际开发需求。下面以application.properties配置文件为例,列举log的几项常用配置:

  • 指定log输出的具体文件,此时项目运行会对应地生成该日志文件:
		logging.file=D:\\logs\\springbootTest.log
  • 指定log输出的路径,此时项目运行会在该路径下生成名为spring.log 的日志文件:
		logging.file=D:\\logs\\springbootTest\\logs

需要注意的是:这两个配置不能同时使用,否则不会生成任何日志文件。

  • 指定某个包下的日志输出级别:

指定自己程序代码中的包:

	logging.level.com.mjj.springbootTest =info

还可以指定框架本身的包:

	logging.level.org.springframework.dao = debug

其他log配置详情参见 :有关application.properties的更多配置

三、使用logback.xml配置文件

如果对默认配置的改动项比较多,在application.properties中配置显得繁杂,那么还有一种我们最为熟悉的方式,即单独的log配置文件logback.xml 。配置文件的命名需严格使用logback.xml或者logback-spring.xml,不然spring boot会无法识别该配置文件,从而去application.properties中寻找相关配置。这里有一个亲测好用的,级别分离的logback.xml示例:



    
    SpringBootDemo
    
    
    

    
    
        
        ${LOG_PATH}\${APPDIR}\error.log
        
        
            
            ${LOG_PATH}\${APPDIR}\error\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
        
    

    
    
        
        ${LOG_PATH}\${APPDIR}\warn.log
        
        
            
            ${LOG_PATH}\${APPDIR}\warn\warn-%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
        
        
        
            warn
            ACCEPT
            DENY
        
    

    
    
        
        ${LOG_PATH}\${APPDIR}\info.log
        
        
            
            ${LOG_PATH}\${APPDIR}\info\info-%d{yyyy-MM-dd}.%i.log
            
            
                5MB
            
            180
        
        
        true
        
        
            ==%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n
            utf-8
        
        
        
            info
            ACCEPT
            DENY
        
    

    
        
        ${LOG_PATH}\${APPDIR}\debug.log
        
        
            
            ${LOG_PATH}\${APPDIR}\debug\debug-%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
        
        
        
            debug
            ACCEPT
            DENY
        
    

    
        
        
            ==%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n
            utf-8
        
        
        
            debug
        
    

    
    

    
    
        
        
        
        
        
        
    

如果想给logback配置文件另取文件名也可以,只需要在application.properties中添加配置:

logging.config=logback-name.xml

(logback-name.xml即更改后的文件名)

四、最后一点

需要注意的是:三种配置文件的加载是有顺序的
logback.xml --> application.properties -->logback-spring.xml
因此,当发现 application.properties或logback-spring.xml有的配置项未生效时,可根据该顺序检查排错,去掉优先级高的配置文件中的重复项。

你可能感兴趣的:(Java后端框架)