springboot整合logback

最近开发的项目中使用了springboot,但是发现默认的日志配置(CommonsLogging)不能自动切割日志,所以整合了logback

logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。 Logback是要与SLF4J结合起来用两个组件的官方网站如下:
logback的官方网站: http://logback.qos.ch
SLF4J的官方网站:http://www.slf4j.org

pom.xml配置

  
       ch.qos.logback  
       logback-classic  
 

ps:在spring boot项目中,会默认引入logback相关的jar包
logback-classic-1.0.0.jar
logback-core-1.0.0.jar
slf4j-api-1.6.0.jar

1.application.properities配置

#logback
logging.config=classpath:log/logback-spring.xml
log.path=/home/testadmin/SDX/apache-tomcat-8.5.38/logs
log.level=info
log.name=timer

2.logback-spring.xml配置

  



    timer
	
	
	
	
	
    
    
		
        
        	
            
            
            [%date{yyyy-MM-dd HH:mm:ss.SSS}] %X{logthreadId} %-5level %logger{80} %method %line - %msg%n
            
            UTF-8
        
    
 
	
    
   	    ${logPath}${file.separator}${logName}.log
        true
        
            
                [%date{yyyy-MM-dd HH:mm:ss.SSS}] %X{logthreadId} %-5level %logger{80} %method  %line - %msg%n
            
            
            UTF-8
        
        
            ${logPath}${file.separator}%d{yyyy-MM-dd}${file.separator}%d{yyyy-MM-dd}.%i.log.zip
			
            30
            
            10MB
            
            20GB
        
    
 
	
    
        
        
    

	


3、在程序中使用logback

package com.ceno.test; 

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyTest{
     //定义一个全局的记录器,通过LoggerFactory获取
     private final static Logger logger = LoggerFactory.getLogger(BlogAction.class); 
     /**
     * @param args
     */
    public static void main(String[] args) {
        logger.info("logback info");
        logger.error("logback error");
    }
}

4、logback.xml配置示例



    
    SpringBootDemo
    
    
    

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

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

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

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

    
    

    
    
        
        
        

        
        
    

后续:
在把项目以war包形式部署到tomcat时发现一些问题:
logging.config=classpath:log/logback-spring.xml
该指向在本地调试可以正常写入日志文件,但是打包发布到tomcat以后日志配置不生效
所以把logback-spring.xml移动至跟目录,让springboot自动识别该配置文件,删除该指向,成功生成

参照:
https://www.cnblogs.com/lixuwu/p/5804793.html#autoid-1-4-0

你可能感兴趣的:(springboot)