SpringBoot 学习——使用 logback 配置日志

贫寒豌豆

共 4262字,需浏览 9分钟

 · 2017-04-17

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/

控制台打印

将日志信息输出在控制台,可以对信息格式,过滤器等进行设置。

  1. 使用ConsoleAppender创建一个appender。
  2. 设置appender,输出内容格式,过滤器等
  3. 在root中引用该appender。
  
  
    SpringBootDemo
      
      
          
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n  
          
        
        
            
            info
        
      

      
       
          
      

文件输出

将日志以文件的方式输出到指定目录。

  1. 使用RollingFileAppender创建appender。
  2. 设置appender,输出内容格式,过滤器等。
  3. 在root中引用该appender
  4. 下例是输出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
        
    

      
       
          
      

自定义日志

  1. logback.xml中设置日志对象的logger。
    
    
    
    
    
    
    
    
      
      
  2. 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
    
    
  3. 创建一个自定义名称的日志对象。
    注意:getLogger("")中参数与logger的name一致。
    private final static Logger mylogger = LoggerFactory.getLogger("myLog");
  4. 使用该对象输出日志。
    mylogger.info("这是我自定义的logger-myLog");

filter说明

日志等级:从trace开始 TRACE < DEBUG < INFO < WARN < ERROR
filter是appender的过滤器,包括:

  1. LevelFilter:级别过滤器,只输出指定级别日志信息。
  2. ThresholdFilter:临界值过滤器,会输出指定级别及以上的日志信息。
  3. 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

浏览 17
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报