1、我使用的是spring boot自帶的日誌處理包,沒有在pom裏面引進其他的jar包,我的pom文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.sun</groupId>
<artifactId>demo_springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo_springboot</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- <exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>-->
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--熱部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2、配置文件目錄
logback-boot.xml文件內容如下:
<configuration>
<!-- %m輸出的信息, %p日誌級別, %t線程名, %d日期, %c類的全名, %i索引 -->
<!-- appender是configuration的子節點,是負責寫日誌的組件 -->
<!-- ConsoleAppender把日誌輸出到控制檯 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) (%file:%line\)- %m%n</pattern>
<!-- 控制檯也要使用utf-8,不要使用gbk -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- RollingFileAppender:滾動記錄文件,先將日誌記錄到指定文件,當符合某個條件時,將日誌記錄到其他文件 -->
<!-- 1.先按日期存日誌,日期變了,將前一天的日誌文件名重命名爲xxx%日期%索引,新的日誌仍然是sys.log -->
<!-- 2.如果日期沒有變化,但是當前日誌文件的大小超過1kb時,對當前日誌進行分割 重名名 -->
<appender name="syslog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>log/sys-back.log</File>
<!-- rollingPolicy:當發生滾動時,決定 RollingFileAppender 的行爲,涉及文件移動和重命名。 -->
<!-- TimeBasedRollingPolicy: 最常用的滾動策略,它根據時間來制定滾動策略,既負責滾動也負責出發滾動 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 活動文件的名字會根據fileNamePattern的值,每隔一段時間改變一次 -->
<!-- 文件名:log/sys.2017-12-05.0.log -->
<fileNamePattern>log/sys-back.%d.%i.log</fileNamePattern>
<!-- 每產生一個日誌文件,該日誌文件的保存期限爲120天 -->
<maxHistory>120</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- maxFileSize:這是活動文件的大小,默認值是10MB,本篇設置爲100MB -->
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<!-- pattern節點,用來設置日誌的輸入格式 -->
<pattern>
%d %p (%file:%line\)- %m%n
</pattern>
<!-- 記錄日誌的編碼 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 控制檯日誌輸出級別 -->
<root level="info">
<appender-ref ref="STDOUT"/>
</root>
<!-- 指定項目中某個包,當有日誌操作行爲時的日誌記錄級別 -->
<!-- com.sun.demo_springboot爲根包,也就是只要是發生在這個根包下面的所有日誌操作行爲的權限都是DEBUG -->
<!-- 級別依次爲【從高到低】:FATAL > ERROR > WARN > INFO > DEBUG > TRACE -->
<logger name="com.sun.demo_springboot" level="FATAL">
<appender-ref ref="syslog"/>
</logger>
</configuration>
3、application.yml中配置log的配置文件
4、日誌完美的打印出來