[日志配置目标】
- 1、区分info和error日志
- 2、每天产生一个日志文件
- 3、输出该日志具体信息(包名、类名、第几行、时间…)
%d{HH: mm:ss.SSS}——日志输出时间
%thread——输出日志的进程名字
%-5level——日志级别,并且使用5个字符靠左对齐
%logger{36}——日志输出者的包名+类名
%msg——日志消息
%n——平台的换行符
在src/main/resources资源目录下新建logback-spring.xml
文件配置如下:
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!-- 打印到console控制台 -->
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>
%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n
</pattern>
</layout>
</appender>
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 只过滤某个具体Level -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level> <!-- 指定ERROR Level -->
<onMatch>DENY</onMatch> <!-- 匹配ERROR Level就DENY拒绝, 不显示 -->
<onMismatch>ACCEPT</onMismatch> <!-- 不匹配ERROR Level就DENY接受, 显示 -->
</filter>
<encoder>
<pattern>
%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
<!--滚动策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--路径-->
<fileNamePattern>E:\xxx\notes\info.%d.log</fileNamePattern>
</rollingPolicy>
</appender>
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 根据范围过滤 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level> <!-- 只接受error级别 -->
</filter>
<encoder>
<pattern>
%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
<!--滚动策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--路径-->
<fileNamePattern>E:\xxx\notes\error.%d.log</fileNamePattern>
</rollingPolicy>
</appender>
<root level="info">
<appender-ref ref="consoleLog" />
<appender-ref ref="fileInfoLog" />
<appender-ref ref="fileErrorLog" />
</root>
</configuration>
使用步骤:
* 1、在类前面加注解@Slf4j
* 2、直接使用log.info(…)…
【IDEA工具需安装lombok插件, log才不会标红】