chore: 优化日志配置,滚动策略调整为基于日志文件大小和时间滚动

This commit is contained in:
Charles7c 2024-01-19 23:11:22 +08:00
parent 8dc42c7a21
commit 2fa8c254fc
2 changed files with 22 additions and 12 deletions

1
.gitignore vendored
View File

@ -38,6 +38,7 @@ build/
### Temp ### ### Temp ###
*.log *.log
*.log.gz
*.logs *.logs
*.cache *.cache
*.diff *.diff

View File

@ -7,19 +7,21 @@
<configuration debug="false" scan="true" scanPeriod="30 seconds"> <configuration debug="false" scan="true" scanPeriod="30 seconds">
<!-- 关闭 Logback 的状态监听器(通过更换默认状态监听器实现) --> <!-- 关闭 Logback 的状态监听器(通过更换默认状态监听器实现) -->
<statusListener class="ch.qos.logback.core.status.NopStatusListener" /> <statusListener class="ch.qos.logback.core.status.NopStatusListener"/>
<!-- 应用名 --> <!-- 应用名 -->
<springProperty name="APP_NAME" source="spring.application.name" scope="context" /> <springProperty name="APP_NAME" source="spring.application.name" scope="context"/>
<!-- 保存路径 --> <!-- 保存路径 -->
<property name="LOG_PATH" value="${LOG_PATH:-./logs}" /> <property name="LOG_PATH" value="${LOG_PATH:-./logs}"/>
<!-- 字符集 --> <!-- 字符集 -->
<property name="LOG_CHARSET" value="utf-8" /> <property name="LOG_CHARSET" value="utf-8"/>
<!-- 控制台输出格式(带颜色) -->
<!-- 格式化输出:%d 表示日期;%thread 表示线程名;%-5level级别从左显示 5 个字符宽度;%msg日志消息%n 是换行符 --> <!-- 格式化输出:%d 表示日期;%thread 表示线程名;%-5level级别从左显示 5 个字符宽度;%msg日志消息%n 是换行符 -->
<property name="CONSOLE_LOG_PATTERN" value="%red(%d{yyyy-MM-dd HH:mm:ss}) %highlight(%-5level) %green([%thread]) %boldMagenta(%logger{50}) - %msg%n" /> <!-- 控制台输出格式(带颜色) -->
<property name="CONSOLE_LOG_PATTERN" value="%red(%d{yyyy-MM-dd HH:mm:ss}) %highlight(%-5level) %green([%thread]) %boldMagenta(%logger{50}) - %msg%n"/>
<!-- 文件输出格式 --> <!-- 文件输出格式 -->
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{50} - %msg%n"/> <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{50} - %msg%n"/>
<!-- 单个日志文件大小上限 -->
<property name="FILE_MAX_SIZE" value="20MB"/>
<!-- 输出日志到控制台 --> <!-- 输出日志到控制台 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
@ -41,12 +43,14 @@
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 --> <!-- 正在记录的日志文件的路径及文件名 -->
<file>${LOG_PATH}/${APP_NAME}.log</file> <file>${LOG_PATH}/${APP_NAME}.log</file>
<!-- 滚动策略:基于时间归档日志文件 --> <!-- 滚动策略:基于文件大小和时间归档日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 归档日志文件的路径及文件名 --> <!-- 日志文件的路径及文件名 -->
<fileNamePattern>${LOG_PATH}/${APP_NAME}.log.%d{yyyy-MM-dd}.gz</fileNamePattern> <fileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/${APP_NAME}.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<!-- 归档日志最大保留数量(取决于 fileNamePattern 配置的规则,例如:配置归档为每天 1 个文件,那么保留 15 个也可以理解为是保留 15 天) --> <!-- 日志文件大小(超过指定大小后,会切分新文件,从索引 0 开始计数例如app.2024-01-01.1.log.gz -->
<maxHistory>15</maxHistory> <maxFileSize>${FILE_MAX_SIZE}</maxFileSize>
<!-- 日志保留天数 -->
<maxHistory>${FILE_MAX_HISTORY}</maxHistory>
</rollingPolicy> </rollingPolicy>
<encoder> <encoder>
<pattern>${FILE_LOG_PATTERN}</pattern> <pattern>${FILE_LOG_PATTERN}</pattern>
@ -69,7 +73,10 @@
<!-- 如果配置的日志等级,和 application.yml 中的日志等级配置重叠application.yml 配置优先级高 --> <!-- 如果配置的日志等级,和 application.yml 中的日志等级配置重叠application.yml 配置优先级高 -->
<root level="INFO"> <root level="INFO">
<appender-ref ref="CONSOLE"/> <appender-ref ref="CONSOLE"/>
<!--<appender-ref ref="ASYNC_FILE"/>-->
</root> </root>
<!-- 日志保留天数 -->
<!--<property name="FILE_MAX_HISTORY" value="15"/>-->
</springProfile> </springProfile>
<!-- 生产环境:打印到控制台并输出到文件 --> <!-- 生产环境:打印到控制台并输出到文件 -->
@ -78,5 +85,7 @@
<appender-ref ref="CONSOLE_PROD"/> <appender-ref ref="CONSOLE_PROD"/>
<appender-ref ref="ASYNC_FILE"/> <appender-ref ref="ASYNC_FILE"/>
</root> </root>
<!-- 日志保留天数(根据国家法律,网络运行状态、网络安全事件、个人敏感信息操作等相关记录,留存的日志不少于六个月,并且进行网络多机备份。) -->
<property name="FILE_MAX_HISTORY" value="180"/>
</springProfile> </springProfile>
</configuration> </configuration>