SpringBoot日志配置(详解) 涉及控制台输出日志、生成日志文件、日志级别修改、hibernate日志不输出

写在前面

本篇主要讲述日志配置,看完本篇可以解决下述问题,

控制台输出日志、生成日志文件、日志级别修改、hibernate日志不输出

Git Demo Path:https://github.com/MingHaiTian/springboot-start.git

--------------------------------------------------------------------------------------------------------

正文开始

spring-boot包含logback-classic、logback-core,所以仅需配置spring-boot即可

第一步:创建logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
<!--输出日志到 命令行-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
</encoder>
</appender>
<!--输出日志到 日志文件-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--输出文件路径-->
<file>log/tianminghai.log</file>
<!--输出文件大于固定大小自动压缩-->
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>log/tianminghai.%i.log.gz
</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>4</maxIndex>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>50MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
</encoder>
</appender>
<!--此处可以调整输出日志级别 改为debug可以看到更多日志,包括hiber..、system debug类型以上的的日志-->
<root level="info">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
</root>
</configuration>

这种方式创建的log目录在项目根目录下

SpringBoot日志配置(详解)   涉及控制台输出日志、生成日志文件、日志级别修改、hibernate日志不输出

此处值得一提的是

1上述配置包括控制台输出和文件输出;

2上述配置实现.log文件大于50M自动压缩成包;

3<root level="info">代表当前日志输出级别为info,不会显示debug级别日志,如果改为<root level="debug">可以看到debug级别日志,诸如大量hibernate操作。

PS:日志级别由低到高排序

TRACE < DEBUG < INFO < WARN < ERROR < FATAL

第二步:在pom中引用logback.xml资源

<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>*.properties</include>
<include>logback.xml</include>
</includes>
</resource>
</resources> <plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

第三步:程序中引用


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private final Logger logger = LoggerFactory.getLogger(UserController.class);

以上,

  亲测可用

上一篇:Node.js的那些坑——如何让异步并发方法同步顺序执行(for循环+异步操作)


下一篇:java项目中eclipse控制台输出log4j的信息