写在前面
本篇主要讲述日志配置,看完本篇可以解决下述问题,
控制台输出日志、生成日志文件、日志级别修改、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目录在项目根目录下
此处值得一提的是
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);
以上,
亲测可用