java - 文件名在 log4j 中滚动文件

标签 java log4j

在当前情况下,日志文件基于 10MB 的最大文件大小滚动。滚动文件的文件名例如是“SystemOut_Debug.log.1”。

问题是这些滚动日志文件的文件名。我们想要的是文件滚动时的当前日期和时间戳。例如“SystemOut_Debug.20110505.104500.log”

我们如何才能意识到这一点?

非常感谢

最佳答案

改用 DailyRollingFileAppender,例如

<appender name="log" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="/srv/logs/myprogram.log" />
    <param name="Append" value="true" />
    <param name="DatePattern" value="'.'yyyy-MM-dd" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} %-5p [%t] %c: %m%n" />
    </layout>
</appender>

DatePattern 可用于每小时轮换,例如用
<param name="DatePattern" value="'.'hh" />

每小时有一个文件,每 24 小时覆盖一次。

关于java - 文件名在 log4j 中滚动文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5894957/

相关文章:

java - 在测试中模拟 Autowiring 的对象

java - PKIX 路径构建失败 - 在有效的让我们加密证书

java - 排序线程按照创建/启动的顺序运行

Java编译器错误: "cannot find symbol constructor .."?

java - 如何让 Log4j 找到我的属性

java - Log4j 2 根记录器覆盖一切?

java - 如何禁用输出到 log4j.rootLogger?

java - 将 Java Tokenizer 转换为 Stream 对象以利用过滤

java - “log4j:configuration” 必须匹配 “(renderer….loggerFactory)?)”

java - Spring 中的动态 Apache log4j