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

共 4262字,需浏览 9分钟

 ·

2017-04-17 17:04

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

浏览 76
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

分享
举报