说明:Logback是由log4j创始人设计的另一个开源日志组件,拥有更优越的性能,Springboot默认的集成日志,它有一个核心模块logback-core和两个基本模块logback-classic、logback-access更多可以上官方网站:http://logback.qos.ch了解一下,这些暂不是我们的重点。
本节的主要介绍:1、了解logback.xml的常用配置 2、自定义自己的日志输出节点 3、了解常用的属性(可参考配置中注释)。
说明:日志测试比较简单,引入一个logback.xml文件,如果logback.xml位置比较特殊可以在application.propertis中指定引入,另外一个对外测试接口Log.java。
第一:定义logback.xml(太长,只显示error节点和自定义的节点),我在error节点中写了很详细的注释,感觉这样比拿出来说明更易理解 。
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
%msg%n
logs/test-error-today.log
logs/test-error/test-error-%d{yyyy-MM-dd}.%i.log.gz
30
100MB
%d{yyyy-MM-dd HH:mm:ss.SSS} %-4relative [%thread]
%-5level%logger{35} - %msg%n
ERROR
ACCEPT
DENY
logs/test-collect-today.log
${log.path}/collect.%d{yyyy-MM-dd}.%i.log
5kb
%msg%n
INFO
ACCEPT
DENY
0
1024
第二:application.properties中引入logback.xml,初始级别为INFO,默认级别为DEBUG。
logging.config: file:./logback.xml
logging.level.JaninoLogger: INFO
第三:对外提供的接口代码。
@RestController
public class Log {
Logger logger = LoggerFactory.getLogger("logCollect");
Logger log = LoggerFactory.getLogger(this.getClass());
@RequestMapping("/log")
public String logTest1() {
for (int i = 0; i < 10000; i++) {
logger.info("参数{},参数{},参数{},参数{},参数{},参数{},参数{}", i, i + 1, i + 2, i + 3, i + 4, i + 5, i + 6);
}
return "hello log";
}
@RequestMapping("/log1")
public String logTest2() {
for (int i = 0; i < 10000; i++) {
log.info("参数{},参数{},参数{},参数{},参数{},参数{},参数{}", i, i + 1, i + 2, i + 3, i + 4, i + 5, i + 6);
log.warn("参数{},参数{},参数{},参数{},参数{},参数{},参数{}", i, i + 1, i + 2, i + 3, i + 4, i + 5, i + 6);
log.error("参数{},参数{},参数{},参数{},参数{},参数{},参数{}", i, i + 1, i + 2, i + 3, i + 4, i + 5, i + 6);
}
return "hello log1";
}
}
在logback.xml中logCollect为自定义节点,大多数属性说明可以参考上面error节点注释,这里几个上面没有出现的说明一下。
property:定义属性变量,可以在下面直接引用 ;
pattern:%msg%n表示只输出内容CVS格式内容,不定义头,方便解析 ;
filter:只定义了INFO级别,说明logCollect节点只能用到INFO上;
additivity=“false”:表示不从root根上继承,只输出自定义的INFO级别,否则会被输出两次 ;
可以看出图中自定义的日志进行了切分,而且输出内容只是简单的逗号分隔,cvs可以直接打开,其它日志可以自行运行代码打开查看(会有定义的头信息)。
链接:https://pan.baidu.com/s/1Yr8pXlkpqzkzqioMj7onSg
提取码:upl3