springboot配置log日志按天按類緩存實(shí)現(xiàn)過程
更新時(shí)間:2026年01月10日 14:52:41 作者:柿餅zzzz
文章介紹了如何配置Spring Boot項(xiàng)目中的`application.yml`文件,并在同級(jí)目錄下創(chuàng)建`logback-spring.xml`文件以自定義日志設(shè)置,最后,展示了運(yùn)行結(jié)果的圖示
1、配置application.yml文件
logging:
level:
#配置日志打印級(jí)別
root: info
org:
mybatis: debug
cn.mdsoftware.guangtie.dao: debug
2、在application.yml同級(jí)目錄下
新建logback-spring.xml文件
- 配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<jmxConfigurator/>
<springProperty scope="context" name="springAppName" source="spring.application.name"/>
<!--保存日志的文件目錄位置-->
<property name="LOG_PATH" value="log"/>
<!--打印到日志文件的日期格式-->
<property name="FILE_LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:-} --- [%15.15t] %-40.40logger{39} : %m%n"
/>
<!--打印到控制臺(tái)的日期格式-->
<property name="CONSOLE_LOG_PATTERN"
value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) {faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"
/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件輸出的文件名-->
<fileNamePattern>${LOG_PATH:-}/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 每個(gè)日志文件的大小 -->
<maxFileSize>100MB</maxFileSize>
<!-- 保留多少天的日志 -->
<MaxHistory>30</MaxHistory>
<!--每天最大日志量 超過這個(gè)量日志文件就會(huì)誒被回滾覆蓋-->
<maxFileSize>2GB</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<!--錯(cuò)誤日志的位置-->
<appender name="ERROR-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<param name="append" value="true"/>
<param name="threshold" value="WARN"/>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
${LOG_PATH:-}/%d{yyyy-MM-dd}/error/%d{yyyy-MM-dd}-error.%i.log
</fileNamePattern>
<!-- 每個(gè)日志文件的大小 -->
<maxFileSize>100MB</maxFileSize>
<!-- 保留多少天的日志 -->
<MaxHistory>30</MaxHistory>
<!--每天最大日志量 超過這個(gè)量日志文件就會(huì)誒被回滾覆蓋-->
<maxFileSize>2GB</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<appender name="THIRD-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
${LOG_PATH:-}/%d{yyyy-MM-dd}/third/%d{yyyy-MM-dd}-third.%i.log
</fileNamePattern>
<!-- 每個(gè)日志文件的大小 -->
<maxFileSize>100MB</maxFileSize>
<!-- 保留多少天的日志 -->
<MaxHistory>30</MaxHistory>
<!--每天最大日志量 超過這個(gè)量日志文件就會(huì)誒被回滾覆蓋-->
<maxFileSize>2GB</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<!--remote的日志-->
<appender name="REMOTE-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
${LOG_PATH:-}/%d{yyyy-MM-dd}/remote/%d{yyyy-MM-dd}-remote.%i.log
</fileNamePattern>
<!-- 每個(gè)日志文件的大小 -->
<maxFileSize>100MB</maxFileSize>
<!-- 保留多少天的日志 -->
<MaxHistory>30</MaxHistory>
<!--每天最大日志量 超過這個(gè)量日志文件就會(huì)誒被回滾覆蓋-->
<maxFileSize>2GB</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<!--流程的日志-->
<appender name="PROCESS-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
${LOG_PATH:-}/%d{yyyy-MM-dd}/process/%d{yyyy-MM-dd}-process.%i.log
</fileNamePattern>
<!-- 每個(gè)日志文件的大小 -->
<maxFileSize>100MB</maxFileSize>
<!-- 保留多少天的日志 -->
<MaxHistory>30</MaxHistory>
<!--每天最大日志量 超過這個(gè)量日志文件就會(huì)誒被回滾覆蓋-->
<maxFileSize>2GB</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<!--控制臺(tái)打印的日志配置-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- 三方 -->
<logger name="THIRD" additivity="false">
<level value="${log_level}"/>
<appender-ref ref="THIRD-APPENDER"/>
<appender-ref ref="ERROR-APPENDER"/>
<appender-ref ref="CONSOLE"/>
</logger>
<!-- 遠(yuǎn)程 -->
<logger name="REMOTE" additivity="false">
<level value="${log_level}"/>
<appender-ref ref="REMOTE-APPENDER"/>
<appender-ref ref="ERROR-APPENDER"/>
<appender-ref ref="CONSOLE"/>
</logger>
<!-- 流程 -->
<logger name="PROCESS" additivity="false">
<level value="${log_level}"/>
<appender-ref ref="PROCESS-APPENDER"/>
<appender-ref ref="ERROR-APPENDER"/>
<appender-ref ref="CONSOLE"/>
</logger>
<!-- 錯(cuò)誤 -->
<logger name="ERROR" additivity="false">
<level value="WARN"/>
<appender-ref ref="ERROR-APPENDER"/>
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="druid.sql.Statement" level="INFO" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</logger>
<logger name="java.sql.PreparedStatement" level="DEBUG" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</logger>
<logger name="com.zjrc" level="DEBUG" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</logger>
<logger name="org.springframework" level="INFO" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</logger>
<logger name="org.springframework.cloud.sleuth.instrument.web.client.feign" level="INFO" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</logger>
<root level="INFO" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
3、運(yùn)行結(jié)果圖
- 如下所示:

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- 在Springboot中處理log4j2日志文件過程
- Springboot+Mybatis+logback打印sql腳本日志實(shí)現(xiàn)過程
- SpringBoot LogbackvsLog4j2配置與性能測(cè)試對(duì)比分析
- springboot中配置logback-spring.xml的方法
- 使用Logback在SpringBoot項(xiàng)目中實(shí)現(xiàn)日志記錄功能
- SpringBoot項(xiàng)目使用Log4j2+SLF4J構(gòu)建日志的方法步驟
- springboot+logback的多環(huán)境配置全過程
- SpringBoot默認(rèn)日志logback輸出格式配置
相關(guān)文章
JAVA并發(fā)編程有界緩存的實(shí)現(xiàn)詳解
這篇文章主要介紹了JAVA并發(fā)編程有界緩存的實(shí)現(xiàn)詳解的相關(guān)資料,這里舉例說明如何實(shí)現(xiàn),四種方法一一代碼實(shí)現(xiàn),需要的朋友可以參考下2016-12-12
Java編程實(shí)現(xiàn)快速排序及優(yōu)化代碼詳解
這篇文章主要介紹了Java編程實(shí)現(xiàn)快速排序及優(yōu)化代碼詳解,具有一定借鑒價(jià)值,需要的朋友可以了解下。2017-12-12
使用springboot對(duì)外部靜態(tài)資源文件的處理操作
這篇文章主要介紹了使用springboot對(duì)外部靜態(tài)資源文件的處理操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
Java Web Filter 過濾器學(xué)習(xí)教程(推薦)
Filter也稱之為過濾器,它是Servlet技術(shù)中最激動(dòng)人心的技術(shù).這篇文章主要介紹了Java Web Filter 過濾器學(xué)習(xí)教程的相關(guān)資料,需要的朋友可以參考下2016-05-05

