可能是最优雅的logback集成与使用指北
先放官网地址,下面的方案最大程度参照了官网
logback是之前log4j作者的续作是springboot的默认日志框架,优点就不多说了,无脑用就完事,
依赖引入
<!-- logback依赖于slf4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<!-- 核心包 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<!--实现slf4j接口并整合-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
- logback配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true" scan="true" scanPeriod="1 seconds">
<!--用来设置上下文名称,每个logger都关联到logger上下文,默认上下文名称为default 用于区分不同应用程序的记录-->
<contextName>seckill</contextName>
<!--用来定义变量值,它有两个属性name和value,通过<property>定义的值会被插入到logger上下文中,可以使“${}”来使用变量-->
<property name="name" value="seckill"/>
<!--ConsoleAppender 用于在屏幕上输出日志-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<!--定义级别-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>log/${app.name}.log</file>
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file : %line] %msg%n</pattern>
</encoder>
</appender>
<!--root是默认的logger 这里设定输出级别是TRACE-->
<root level="TRACE">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
一些属性的说明:
- ebug=true:将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true
- scanPeriod:设置检测是否改变的时间,默认为一分钟,在scan为true时生效,单位是毫秒