gpt4 book ai didi

java - 每次在 logback 中运行时创建新的日志文件?

转载 作者:搜寻专家 更新时间:2023-10-30 21:27:29 24 4
gpt4 key购买 nike

每次应用程序运行时如何创建新的日志文件?

我想以任何方式保留以前的日志。例如,我更喜欢按创建时间和日期来命名每个新日志文件。否则,我同意将旧日志文件备份到日期和时间文件名中。

不幸的是,我在这里看不到适当的策略和/或触发器:http://logback.qos.ch/manual/appenders.html

更新

我大致按照“重复”中所说的制作

    <appender name="ROUTINEAPPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/routine.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/routine%d{yyyyMMdd}%d{HHmmss,aux}.log</fileNamePattern>
<TimeBasedFileNamingAndTriggeringPolicy class="com.inthemoon.toolkit.StartupTimeBasedTriggeringPolicy" />
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} - %C{0} - %msg%n</pattern>
</encoder>
</appender>

但是我的类 com.inthemoon.toolkit.StartupTimeBasedTriggeringPolicy 从未被调用过。我在 start() 方法中放置了断点,但它从未出现。

此外,不会发生滚动。日志文件已创建,但名称始终为 routine.log

我也不明白,参数filefilenamePattern应该如何共存。

更新 2

我已经修复了 UPDATE 1 类引用,但仍然没有我需要的东西。在给定的解决方案中,日期时间被插入到旧日志文件名中。例如,如果我在 2013 年运行程序,它会创建 routine.log。然后我等了一年,在 2014 年运行程序。将创建新的日志文件并命名为 routine.log,而 2013 年的旧日志将放入 routine2014XXXXXXXXXX.log,这完全无关紧要。

我需要在每次程序启动时创建新文件,并让这个文件标有日期时间戳。

最佳答案

以下配置会在程序每次运行时创建一个新的日志文件和控制台输出,请注意它没有使用RollingFileAppender。有关详细信息,请参阅 logback 文档 https://logback.qos.ch/manual/configuration.html

<configuration>
<timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>logfile-${bySecond}.txt</file>
<append>true</append>
<encoder>
<Pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</encoder>
</appender>
<root level="info" additivity="false">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"></appender-ref>
</root>
</configuration>

关于java - 每次在 logback 中运行时创建新的日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25844215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com