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

问题描述 投票:0回答:2

我们使用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??}之后是否有任何我可以使用的时间戳变量

apache-kafka log4j
2个回答
0
投票

您可以使用以下格式在每分钟开始时进行翻转。

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

官方log4j javadoc DailyRollingFileAppender


0
投票

我认为它必须写入server.properties,或者你在那里硬编码的任何字符串。

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

FileAppender文档至少没有表明这样

© www.soinside.com 2019 - 2024. All rights reserved.