说明
SpringBoot日志框架:slf4j+logback
安装
修改pom.xml,增加logging依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
配置说明
注意,springboot自动识别以下日志配置文件:logging.properties、log4j2-spring.xml、log4j2.xml、logback-spring.xml、logback-spring.groovy、logback.xml、logback.groovy
resources下新增logback.xml配置文件:
<!--
根结点configuration三个属性:是否扫描配置文件变化、扫描间隔时间、是否打印logger内部日志(debug)
根结点configuration包含三大节点:appender、logger、root
-->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 自定义变量 -->
<property name="logpath" value="./logs"></property>
<!--
appender:日志的输出方式,包括以下几种
控制台:ch.qos.logback.core.ConsoleAppender
文件:ch.qos.logback.core.FileAppender
滚动文件:ch.qos.logback.core.rolling.RollingFileAppender
-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{HH:mm:ss.SSS} %-5level %logger{80} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="framework" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logpath}/framework.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志备份名 -->
<fileNamePattern>${logpath}/framework.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 最大备份数 -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--
根据name指定某个特定的类或包的记录器,可以设置appender、level、additivity
level是记录日志的最低级别,从低到高:trace debug info warn error
additivity=true 时传递给上级
-->
<logger name="com.it_laowu.springbootstudy.springbootstudydemo.core.config.AppConfig" level="debug" additivity="false">
<appender-ref ref="console" />
</logger>
<!--
root是最上级的logger,logger向上传递(addtivity=true)都会到root
-->
<root level="info">
<appender-ref ref="console"/><appender-ref ref="framework" />
</root>
</configuration>
使用
比如AppConfig
已经设置了特定的logger
,我们在代码中输出:
public class AppConfig {
......
private static final Logger logger = LoggerFactory.getLogger(AppConfig.class);
public AppConfig(){
logger.info("AppConfig start");
}
}
debug一下,效果如下:
项目文件夹内也有logs
目录,并且包含framework.log
。
日志框架就这么简单,搞明白配置就可以了。