SpringBoot 学习——使用 logback 配置日志
SpringBoot学习——使用logback配置日志
java中创建日志对象
在springboot的启动类中输出各个级别的日志信息。
MainStart.java
package com.gyqc.ms;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.web.support.SpringBootServletInitializer;
@SpringBootApplication
public class MainStart extends SpringBootServletInitializer implements EmbeddedServletContainerCustomizer {
    //
    private final static Logger logger = LoggerFactory.getLogger(MainStart.class);  
    //自定义日志 
    private final static Logger mylogger = LoggerFactory.getLogger("myLog");
    public static void main(String[] args) throws Exception {
        SpringApplication.run(MainStart.class, args);
        logger.trace("这是一个pzr-pay信息");
        logger.trace("这是一个TRACE信息");
        logger.debug("这是一个DEBUG信息");  
        logger.info("这是一个INFO信息");  
        logger.warn("这是一个WARN信息");  
        logger.error("这是一个ERROR信息");  
        mylogger.info("这是我自定义的logger-myLog");
    }
    @Override
    public void customize(ConfigurableEmbeddedServletContainer container) {
//      container.setPort(80);  //修改端口号
    }
}
application.properties配置
在src/main/resources下建立application.properties文件。
写入配置文件引用代码
logging.config=classpath:logback.xml
logback.xml配置
logback相关标签说明参阅:
http://www.cnblogs.com/lixuwu/p/5804793.html
http://blog.csdn.net/haidage/article/details/6794509/
控制台打印
将日志信息输出在控制台,可以对信息格式,过滤器等进行设置。
- 使用ConsoleAppender创建一个appender。
 - 设置appender,输出内容格式,过滤器等
 - 在root中引用该appender。
 
  
  
    SpringBootDemo 
      
      
          
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n   
           
        
        
            
            info 
         
       
      
       
           
       
 
文件输出
将日志以文件的方式输出到指定目录。
- 使用RollingFileAppender创建appender。
 - 设置appender,输出内容格式,过滤器等。
 - 在root中引用该appender
 - 下例是输出error的文件到指定目录的指定文件中,每天自动滚动该文件,昨天的文件会被带上日期重命名。
 
  
  
    SpringBootDemo 
    
     
    
     
      
        
        ${LOG_PATH}/${APPDIR}/log-error.log 
        
          
            
            ${LOG_PATH}/${APPDIR}/error/log-error-%d{yyyy-MM-dd}.%i.log   
              
            60 
            
             
                 2MB   
                
           
        
        true 
        
        
            ===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n 
            utf-8 
         
        
        
            error 
            ACCEPT 
            DENY 
         
     
      
       
           
       
 
自定义日志
- logback.xml中设置日志对象的logger。
 - logback.xml中设置logger的appender。
${LOG_PATH}/${APPDIR}/log-mylog.log ${LOG_PATH}/${APPDIR}/error/log-mylog-%d{yyyy-MM-dd}.%i.log 60 2MB true ===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n utf-8 info ACCEPT DENY  - 创建一个自定义名称的日志对象。
注意:getLogger("")中参数与logger的name一致。private final static Logger mylogger = LoggerFactory.getLogger("myLog"); - 使用该对象输出日志。
mylogger.info("这是我自定义的logger-myLog"); 
filter说明
日志等级:从trace开始 TRACE < DEBUG < INFO < WARN < ERROR
filter是appender的过滤器,包括:
- LevelFilter:级别过滤器,只输出指定级别日志信息。
 - ThresholdFilter:临界值过滤器,会输出指定级别及以上的日志信息。
 - EvaluatorFilter:条件过滤器,只输出符合鉴别器规定的日志信息。
 
LevelFilter级别过滤器
引用“ch.qos.logback.classic.filter.LevelFilter”
    
    info 
    
    
    
    
    ACCEPT 
    
    DENY 
 
ThresholdFilter临界值过滤器
引用“ch.qos.logback.classic.filter.ThresholdFilter”
    
    info 
 
EvaluatorFilter条件过滤器
引用“ch.qos.logback.core.filter.EvaluatorFilter”
需要注意的是,该过滤器依赖org.apache.servicemix.bundles.janino
所以在pom.xml的dependencies中引入
    org.apache.servicemix.bundles 
    org.apache.servicemix.bundles.janino 
    2.6.1_1 
 
过滤器写法
    
     
        return message.contains("pzr-pay");    
       
    
    ACCEPT 
    
    DENY 
 
参考
http://blog.csdn.net/haidage/article/details/6794509/
http://blog.csdn.net/haidage/article/details/6794540
http://412887952-qq-com.iteye.com/blog/2307244
http://blog.csdn.net/xiaoyu411502/article/details/48295973
