当前位置: 首页 > 知识库问答 >
问题:

如何增加Spring Boot日志记录的天数-Spring.xml

贺恩
2023-03-14

任何帮助或暗示将非常感谢!!

我的SpringBoot应用程序只记录了1天。我要它记录超过30天。

<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>

application.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

共有1个答案

殳凯捷
2023-03-14

如果希望将日志文件保存30天以上,最好不要使用fixedwindowrollingpolicy(文档),如果您只想限制保存在文件系统上的日志文件的数量,则可以使用该文档。

适合您需求的更好的附加程序是sizeandtimebasedrollingpolicy,

基本上按日期存档[s]个文件,但同时限制每个日志文件的大小

我建议对当前文件附加程序进行的编辑如下所示

<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>

sizeandtimebasedrollingpolicy使用fileNamePatternlog_file-2019-05-02.0存储文件(LOG_FILE当然是${LOG_FILE}变量的值)。每当该文件的大小大于10MB时,该文件就会滚动,然后将创建并写入一个新文件log_file-2019-05-02.1

午夜之后写入的第一个日志将创建一个新文件log_file-2019-05-03.0,并写入该文件。超过30天的日志文件将被删除。调整配置以最适合您的需要。

我建议您阅读这个appender的文档以获得更多的细节。

 类似资料:
  • 问题内容: 场景是这样的: 我们正在使用JBehave和Selenium进行系统,集成和端到端测试。我正在检查超过20个值的页面上的计算结果以进行验证。使用Junit Assert,如果其中一个值不正确的第一个实例,则整个测试将失败。我想做的是,如果遇到断言失败,那么测试将继续执行,这样我就可以整理一次测试而不是多次测试中所有不正确的值。 为此,我捕获了断言并将未通过验证的所有内容写到日志文件中。

  • 问题内容: 我需要能够使用jQuery将1、2、5或10天添加到今天的日期。 问题答案: 你可以使用JavaScript,不需要jQuery: 格式化为

  • 我想在我的应用程序中使用SLF4J+logback用于两个目的--日志和审计。 14:41:57.978[main]信息AUDIT_LOGGER-110欢迎使用main 如何确保审核消息在审核记录器下只出现一次?

  • 我可以创建一个命名的子记录器,以便该记录器输出的所有日志都用它的名称标记。我可以只在函数/类/任何东西中使用记录器。 但是,如果该代码调用了另一个模块中的函数,该模块仅使用日志模块函数(根记录器的代理)进行日志记录,我如何确保这些日志消息通过相同的记录器(或者至少以相同的方式记录)? 例如: main.py 其他.py 产出: 我希望能够使两个日志行都标记为名称'stuff',我希望能够做到这一点

  • 问题内容: 我正在考虑将Redis用于Web应用程序日志记录目的。我用谷歌搜索,有人将日志转储到Redis队列/列表中,然后将计划的工作人员转储到磁盘中。 http://nosql.mypopescu.com/post/8652869828/another-redis-use-case- centralized-logging 我希望寻求理解,为什么不直接使用Redis持久化到磁盘?如果我分配了一

  • logging 模块自 2.3 版以来一直是 Python 标准库的一部分。在 PEP 282 中有对它的简洁描述。除了 基础日志教程 之外,这些文档是非常难以阅读的。 日志记录一般有两个目的: 诊断日志 记录与应用程序操作相关的日志。例如,当用户遇到程序报错时, 可通过搜索诊断日志以获得上下文信息。 审计日志 为商业分析而记录的日志。从审计日志中,可提取用户的交易信息, 并结合其他用户资料构成用