log4j kafka appender不使用已定义的ConversionPattern

时间:2012-12-20 12:45:48

标签: log4j apache-kafka apache-storm

我正在运行一个使用log4j进行日志记录的Storm集群。除了标准的基于文件的日志记录之外,我还想添加一个kafka appender。

我的log4j配置文件如下所示:

log4j.rootLogger=INFO, A1

log4j.appender.A1 = org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File = /var/log/storm/logs/${logfile.name}
log4j.appender.A1.Append = true
log4j.appender.A1.DatePattern = '.'yyy-MM-dd
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n

log4j.appender.KAFKA=kafka.producer.KafkaLog4jAppender
log4j.appender.KAFKA.Host=<kafka.ip>
log4j.appender.KAFKA.Port=9092
log4j.appender.KAFKA.Topic=storm_log
log4j.appender.KAFKA.SerializerClass=kafka.producer.DefaultStringEncoder
log4j.appender.KAFKA.layout=org.apache.log4j.PatternLayout
log4j.appender.KAFKA.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n

log4j.logger.my.package.name=INFO, KAFKA

一切正常,除了kafka appender不使用定义的ConversionPattern,即使定义与文件appender完全相同,文件appender按预期工作。如何更改配置以使kafka appender正常工作?

1 个答案:

答案 0 :(得分:1)

我遇到了与Kafka 0.7版相同的问题。

在版本0.7.1中对KafkaLog4jAppender进行了一些更改,升级后,ConversionPattern对我来说效果很好,配置类似于上面的配置。