本文最后更新于:October 23, 2022 pm
SpringBoot框架中有两个非常重要的策略:开箱即用和约定优于配置。其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
目录
SLF4J初体验
创建一个SpringBoot项目,在spring-boot-starter-web中默认就有slf4j和logback的依赖。
推荐直接查看整合SpringBoot部分。
测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| package com.tothefor.motorcode;
import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest class MotorCodeApplicationTests { private static final Logger LOGGER = LoggerFactory.getLogger(MotorCodeApplicationTests.class);
@Test void contextLoads() { int a = 32; LOGGER.trace("trace"); LOGGER.debug("debug"); LOGGER.info("info"); LOGGER.info("info:{}",a); LOGGER.warn("warn"); LOGGER.error("error");
}
}
|
SLF4J+Logback
配置文件
日志输出格式
| %-10level 级别,10个字符,左对齐 %d{yyyy-MM-dd HH:mm:ss.SSS} 日期 %c 当前类全限定名称 %M 当前执行日志的方法 %L 行号 %thread 线程名称 %m或者%msg 信息 %n 换行
|
通用属性配置
类似于Mybatis中的SQL片段。
| <?xml version="1.0" encoding="UTF-8"?> <configuration> <property name="pattern" value="[%-10level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L %thread %m%n"></property> </configuration>
|
配置输出
是输出到控制台,还是输出到文件。可以自行定义。
| <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <target> System.err </target> <encoder> <pattern>${pattern}</pattern> <charset class="java.nio.charset.Charset">utf8</charset> </encoder> </appender>
|
日志记录器
记录需要输出的日志。
| <root level="ALL"> <appender-ref ref="console" /> </root>
|
解释:所有的日志,均通过 console 的输出方式进行。
整合SpringBoot
这里只是简单记录一下,具体的文件拆分等等其他并没有记录。
输出到控制台
application.yml内容如下:
| spring: application: name: motorCode
logging: level: root: INFO pattern: console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] [%t] [%c#%M-%L] %m%n"
|
⚠️注意:console后面的值必须使用双引号,否则会报找不到配置文件。
再次运行上面的测试代码。
输出到文件
| spring: application: name: motorCode
logging: level: root: INFO pattern:
file: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] [%t] [%c %M-%L] %m%n" file: path: /Users/duibagroup/Desktop/motorCode/src/main/resources/log
|
⚠️注意:这里配置的只是目录,会在此目录下自动生成一个spring.log的日志文件。