1、导引
-
日志框架
- 是一套能实现日志输出的工具包
- 能够描述系统运行状态的所有时间都可以算作日志
-
SpringBoot 采用的日志框架、
SLF4j + Logback
-
日志级别
》trace – debug – info – warn – error
2、Lombok
- 传统日志记录
public class LoggerTest {
// 采用工厂创建日志对象,参数为该类的字节码对象(用于定位记录的类信息)
private final Logger logger =
LoggerFactory.getLogger(LoggerTest.class);
@Test
public void test1() {
logger.debug("debug.....");
logger.info("info.....");
logger.error("error.....");
}
}
- Lombok 日志记录
-
需在 IntelliJ 安装插件
-
添加依赖
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.4</version> <scope>provided</scope> </dependency>
-
类上添加 @Slf4j 注解就可不用定义变量直接使用 log 记录日志
@Slf4j
public class LoggerTest {
@Test
public void test1() {
log.debug("测试-调试:debug.....");
log.info("测试-信息:info.....");
log.error("测试-错误:error.....");
log.warn("测试-警告:warn.....");
}
}
-
lombok 的其他用法
3、日志配置项
- yml 文件方式
logging:
pattern:
console: "%d - %msg%n" # %d 时间 %msg 输出信息
# path: D:\temp # 存放的路径,日志文件名默认为spring.log
# 配置存放路径及日志文件名
file: C:\Users\Administrator\Desktop\1\2\sell.log
level: info # 日志级别
com.moc.Log.LoggerTest: debug # 指定某个类的日志级别为 debug
-
logback-spring.xml
采用 yml 只能进行一些简单的配置,如果需要 配置滚动策略等,需要在 logback-spring.xml 配置文件中进行配置(注释掉yml中的配置)。
该文件存放于 resources 目录下。
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!-- 控制台配置项-->
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d - %msg%n</pattern>
</layout>
</appender>
<!-- Info信息配置项 -->
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 日志输出形式 -->
<encoder>
<pattern>%d - %msg%n</pattern>
</encoder>
<!-- 日志滚动策略 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志存储路径及文件名 -->
<fileNamePattern>D:temp\info.%d.log</fileNamePattern>
</rollingPolicy>
<!-- 过滤规则, 不保留Error级别的日志 注意是:LevelFilter -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
</appender>
<!-- Error信息配置项 -->
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 日志输出形式 -->
<encoder>
<pattern>%d - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>D:temp\error.%d.log</fileNamePattern>
</rollingPolicy>
<!-- 过滤,只保留Error级别的日志 注意是:ThresholdFilter -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<!-- 根级别: info, info及以上的日志将匹配到下面的配置中 -->
<root level="info">
<!-- 控制台日志输出配置 -->
<appender-ref ref="consoleLog" />
<appender-ref ref="fileInfoLog" />
<appender-ref ref="fileErrorLog" />
</root>
</configuration>