spring-boot - 如何增加 Spring Boot logback-spring.xml 的日志记录天数
问题描述
任何帮助或提示将不胜感激!!
我的 SpringBoot 应用程序仅记录 1 天。我希望它记录超过 30 天。
logback-spring.xml
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<charset>UTF-8</charset>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<charset>UTF-8</charset>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<file>${LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${LOG_FILE}.%i</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<logger name="ca.test.hub" level="INFO" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</logger>
<logger name="org.apache.cxf" level="INFO" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</logger>
<logger name="org.hibernate" 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>
应用程序.yml:
logging:
文件:logs/test.log 模式:控制台:“%d{dd-MM-yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M - %msg%n”文件:“%d{dd-MM-yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M - %msg%n”级别:root:INFO
解决方案
如果您想保留日志文件超过 30 天,最好不要使用FixedWindowRollingPolicy
( documentation ),如果您只想限制保存在文件系统上的日志文件的数量,则使用此方法。
如文档中SizeAndTimeBasedRollingPolicy
所述,更适合您的要求的附加程序是
归档[s] 文件基本上按日期,但同时限制每个日志文件的大小
我建议的对您当前FILE
附加程序的编辑将是这样的
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<charset>UTF-8</charset>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}-%d{yyyy-MM-dd}.%i</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
</appender>
这使用(LOG_FILE 当然是变量的值)SizeAndTimeBasedRollingPolicy
存储文件。每次达到大于 10MB 的大小时,该文件都会翻转 - 然后将创建一个新文件 , 并将其写入。fileNamePattern
LOG_FILE-2019-05-02.0
${LOG_FILE}
LOG_FILE-2019-05-02.1
第一个要在午夜之后写入的日志将创建一个新文件,LOG_FILE-2019-05-03.0
然后写入它。超过 30 天的日志文件将被删除。调整配置以最适合您的需求。
我建议您阅读此附加程序的文档以获取更多详细信息。
推荐阅读
- ios - 在主视图中按下按钮时,如何在弹出视图控制器中更改标签的标签文本?
- c++ - 是否有一种标准方法来计算两个 asctime() 值之间的天数
- rxjs - rxjs 嵌套的可观察对象、窗口和扫描的意外行为
- awk - 在文件匹配条件中搜索 3+ 个连续行
- android - Android 应用程序崩溃:retrofit2.HttpException:HTTP 401
- amazon-web-services - 描述 AWS 中服务的最大实例数
- powermock - Jacoco 离线仪器在 Java 11 中无法用于 PowerMock 测试
- python-3.x - 如何使用 Selenium 和 Python 从下拉列表中选择一个值
- java - 算术异常整数
- rust - 位置无关代码 (PIC) 中的绝对地址