如何在kafka server.log文件名中包含当前日期和小时?

时间:2018-08-31 05:35:54

标签: apache-kafka log4j

我们使用kafka 1.1.0。

log4j.properties就像

log4j.appender.kafkaAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.kafkaAppender.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log
log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n

现在的日志写成

  • 总是写到server.log
  • 每小时将server.log重命名为server.log.2018-08-30-21,创建新的server.log
  • 重复

是否可以将写入逻辑更改为

  • 现在是2018-08-30 21:59,将日志写入server.log.2018-03-30-21
  • 时间到2018-08-30 22:01时,将日志写入server.log.2018-03-30-22

仅通过更改一些配置文件?我想知道${kafka.logs.dir}/server.log.${something??}

之后是否可以使用任何时间戳变量?

2 个答案:

答案 0 :(得分:0)

您可以使用以下格式在每分钟开始时过渡。

log4j.appender.kafkaAppender.DatePattern='.'yyyy-MM-dd-HH-mm

官方log4j javadoc DailyRollingFileAppender

答案 1 :(得分:0)

我认为它总是必须写入server.properties或您在其中硬编码的任何字符串。

我怀疑log4j.appender.kafkaAppender.File属性是否接受日期模式或其他动态变量

FileAppender文档至少没有表明这种情况