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/
控制台打印
将日志信息输出在控制台,可以对信息格式,过滤器等进行设置。
- 使用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