From 6d393fe68d85c560b7dfb59d28503668f3dffcb1 Mon Sep 17 00:00:00 2001
From: 钟日健 <arsn163@163.com>
Date: Wed, 20 May 2026 22:22:08 +0800
Subject: [PATCH] opt: log prod 配置修改

---
 src/main/resources/log/logback-prod.xml |   66 +++++++++++++++++++++++++++------
 1 files changed, 54 insertions(+), 12 deletions(-)

diff --git a/src/main/resources/log/logback-prod.xml b/src/main/resources/log/logback-prod.xml
index b782b79..9a9f583 100644
--- a/src/main/resources/log/logback-prod.xml
+++ b/src/main/resources/log/logback-prod.xml
@@ -10,6 +10,7 @@
                     converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
     <conversionRule conversionWord="wEx"
                     converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+    <property name="LOG_PATH" value="${LOG_PATH:-/app/logs/${springAppName}}"/>
     <!-- 彩色日志格式 -->
     <property name="CONSOLE_LOG_PATTERN"
               value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
@@ -19,16 +20,48 @@
             <pattern>${CONSOLE_LOG_PATTERN}</pattern>
             <charset>utf8</charset>
         </encoder>
+        <!-- 打印日志级别 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>WARN</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
     </appender>
 
+    <!-- 生成日志文件 DEBUG -->
+    <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <!-- 日志文件输出的文件名 -->
+            <FileNamePattern>${LOG_PATH}/debug/%d{yyyy-MM-dd}/debug-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
+            <!--最多保留30天-->
+            <maxHistory>7</maxHistory>
+            <!-- 每个日志文件到100mb的时候开始切分,最多保留7天,但最大到20GB,哪怕没到7天也要删除多余的日志 -->
+            <totalSizeCap>10GB</totalSizeCap>
+            <!-- maxFileSize:这是活动文件的大小,默认值是100MB-->
+            <maxFileSize>100MB</maxFileSize>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%n%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger{50}] %n%-5level: %msg%n</pattern>
+        </encoder>
+        <!-- 打印日志级别 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
 
-    <!-- 生成日志文件 -->
+    <!-- 生成日志文件 INFO -->
     <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
             <!-- 日志文件输出的文件名 -->
-            <!-- 日志文件输出的文件名 -->
-            <FileNamePattern>/home/zhbaw/log/info/info-%d{yyyy-MM-dd}.log</FileNamePattern>
-            <maxHistory>3</maxHistory>
+            <FileNamePattern>${LOG_PATH}/info/%d{yyyy-MM-dd}/info-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
+            <!--最多保留30天-->
+            <maxHistory>7</maxHistory>
+            <!-- 每个日志文件到30mb的时候开始切分,最多保留7天,但最大到3GB,哪怕没到7天也要删除多余的日志 -->
+            <totalSizeCap>10GB</totalSizeCap>
+            <!-- maxFileSize:这是活动文件的大小,默认值是100MB-->
+            <maxFileSize>30MB</maxFileSize>
         </rollingPolicy>
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
             <pattern>%n%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger{50}] %n%-5level: %msg%n</pattern>
@@ -41,13 +74,17 @@
         </filter>
     </appender>
 
-    <!-- 生成日志文件 -->
+    <!-- 生成日志文件 warn 级别 -->
     <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
             <!-- 日志文件输出的文件名 -->
-            <!-- 日志文件输出的文件名 -->
-            <FileNamePattern>/home/zhbaw/log/warn/warn-%d{yyyy-MM-dd}.log</FileNamePattern>
-            <maxHistory>7</maxHistory>
+            <FileNamePattern>${LOG_PATH}/warn/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
+            <!--最多保留30天-->
+            <maxHistory>30</maxHistory>
+            <!-- 每个日志文件到10mb的时候开始切分,最多保留30天,但最大到1GB,哪怕没到30天也要删除多余的日志 -->
+            <totalSizeCap>1GB</totalSizeCap>
+            <!-- maxFileSize:这是活动文件的大小,默认值是10MB,测试时可改成5KB看效果 -->
+            <maxFileSize>10MB</maxFileSize>
         </rollingPolicy>
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
             <pattern>%n%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger{50}] %n%-5level: %msg%n</pattern>
@@ -62,10 +99,15 @@
 
     <!-- 生成日志文件 -->
     <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
             <!-- 日志文件输出的文件名 -->
-            <FileNamePattern>/home/zhbaw/log/error/error-%d{yyyy-MM-dd}.log</FileNamePattern>
+            <FileNamePattern>${LOG_PATH}/error/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
+            <!--最多保留30天-->
             <maxHistory>30</maxHistory>
+            <!-- 每个日志文件到10mb的时候开始切分,最多保留30天,但最大到1GB,哪怕没到30天也要删除多余的日志 -->
+            <totalSizeCap>1GB</totalSizeCap>
+            <!-- maxFileSize:这是活动文件的大小,默认值是10MB,测试时可改成5KB看效果 -->
+            <maxFileSize>10MB</maxFileSize>
         </rollingPolicy>
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
             <pattern>%n%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger{50}] %n%-5level: %msg%n</pattern>

--
Gitblit v1.9.3