java - log4j 到 log4j2 自定义 RollingPolicy

标签 java apache logging log4j log4j2

我们有一个自定义滚动策略,在 log4j 中声明如下:

log4j.appender.testing.rollingPolicy=com.custom.appender.TimeBasedRollingPolicy log4j.appender.testing.rollingPolicy.timeToRolloverInSeconds=60 log4j.appender.testing.rollingPolicy.FileNamePattern=/tmp/cdr.log

如何在 log4j2.xml 中声明它?

最佳答案

Log4j2 有 built-in time based rollover policy这可能会做你想做的事。以下配置会导致每分钟翻转一次:

<Appenders>
  <RollingFile name="RollingFile" fileName="logs/app.log"
               filePattern="logs/old/app-%d{yyyyMMdd-HHmm}-log.gz">
    <PatternLayout>
      <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
    </PatternLayout>
    <Policies>
      <TimeBasedTriggeringPolicy />
    </Policies>
  </RollingFile>

如果您想创建自定义滚动策略,则需要创建一个实现 TriggeringPolicy 的 log4j2 插件。一个好的起点是查看内置 TimeBasedTriggeringPolicy 的源代码。有关 Log4j 自定义插件的一般信息是 here .

关于java - log4j 到 log4j2 自定义 RollingPolicy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29468445/

相关文章:

java - RFID认证信息

java - 同步 vs 锁 vs 同步映射

python - 如何使用日志记录、pytest fixture 和 capsys?

Java Spring Boot - 使用有效载荷记录响应

javascript - NodeJS 脚本作为 Windows 服务运行。无法写入文件

java - 为 kafka 消费者使用多个反序列化器

java - 如何将一个 Maven 项目用作另一个 Maven 项目的依赖项?

php - 使用 mysql 查询输出打印 php 变量值

php - .htaccess 为特定目录关闭 SSL

python - Apache2 CGI 配置