SLF4J日志应用
logback配置文件加载优先级顺序
- 自动在classpath下查找并加载对应文件,前一个有就不会去查找下一个:logback.groovy>logback-test.xml>logback.xml>logback-spring.xml。
六个日志级别
- 常见的日志级别有FATAL、ERROR、WARNING、INFO、DEBUG、TRACE,一般默认的日志级别为INFO。
logback配置文件节点
- 根节点Configuration有三个子节点,其中可以定义多个Appender和多个Logger,只能定义一个Root。
- Appender节点有三种常见的子节点:其中Console节点用来定义输出到控制台的Appender,File节点用来定义输出到指定位置的文件的Appender,RollingFile节点用来定义超过指定大小自动删除旧文件并创建新文件的Appender。
- Logger节点用来单独指定日志输出的形式。
- Root节点用来指定项目的根日志输出形式,如果某个类或包没有通过Logger单独指定日志输出形式,那么会默认使用该Root根日志输出形式。
logback日志文件示例
1 |
|
引入maven依赖
在SpringBoot项目中必须引入lombok依赖才可以使用@SFL4J注解
1 | <dependency> |
在类中通过@SFL4J注解指定日志输出形式
没有特别指定输出形式,则使用root根日志输出形式:
1 | 4j |
通过注解指定日志输出形式为play:
1 | 4j(topic = "play") |
通过注解指定日志输出形式为study:
1 | 4j(topic = "study") |
异步日志AsyncAppender配置
异步日志采用异步的方式打印日志,避免了在多应用高并发情况下日志打印消耗过多资源,影响工作线程效率。异步日志记录是在原来logback上的扩展,并不是替代方式,所以只需要在原来的配置文件上添加一下配置:
1 | <configuration> |
日志规约
格式清晰的日志输出能使我们在开发和测试过程中更准确地发现和解决问题。
格式1
- INFO:
1 | log.info("logType=[methodName_event], param0: {},param1: {},,,paramN: {}",param0,param0,paramN); |
- ERROR:
1 | log.error("logType=[methodName_event], param0: {},param1: {},,,paramN: {}",param0,param0,paramN); |
格式2
- INFO
1 | log.info("logType=[{eventName}], result=[{resultName}], param0: {}, param1: {},,,paramN: {}" , eventName, resultName, param0, param0, paramN); |
- ERROR
1 | log.error("logType=[{eventName}], result=[{resultName}], param0: {}, param1: {},,,paramN: {}" , eventName, resultName, param0, param0, paramN); |