Confluent Kafka(cp-kafka)是否支持带时间/大小触发策略的Log4j RollingFileAppender?
Kafka日志滚动配置问题(基于Confluent Docker镜像)
我使用Confluent Community的Apache Kafka Docker镜像(版本7.0.2),想要配置基于时间+大小的日志触发与滚动策略,实现每日日志滚动。
按照官方文档指导,我扩展了镜像并通过log4j.properties文件配置Log4j,但发现只有注释里的基础org.apache.log4j.RollingFileAppender配置生效——这个配置不支持每日滚动或复合策略。
官方文档示例还在使用老旧的Log4j1.x组件org.apache.log4j.DailyRollingFileAppender,但该组件已被弃用,我也不确定Kafka的Log4j1.x包是否附带了apache-log4j-extras。
以下是我使用的Dockerfile和log4j配置文件,请问有没有人成功配置过这类日志策略?我的配置是否存在问题?
Dockerfile
FROM confluentinc/cp-kafka:7.0.2 COPY log4j.properties.template /etc/confluent/docker/log4j.properties.template
log4j.properties配置文件
log4j.rootLogger={{ env["KAFKA_LOG4J_ROOT_LOGLEVEL"] | default('INFO') }}, stdout, rollingFile log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n #log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender #log4j.appender.rollingFile.File=/var/log/kafka/kafka-server.log #log4j.appender.rollingFile.filePattern=/var/log/kafka/kafka-server-%d{yyyy-MM-dd}-%i.log #log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout #log4j.appender.rollingFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %m%n #log4j.appender.rollingFile.MaxFileSize=5KB #log4j.appender.rollingFile.MaxBackupIndex=15 #log4j.appender.rollingFile.append=true log4j.appender.rolling.type=RollingFile log4j.appender.rolling.name=rollingFile # Below is the default..just making explicit. log4j.appender.rolling.append=true log4j.appender.rolling.fileName=/var/log/kafka/kafka-server1.log log4j.appender.rolling.filePattern=/var/log/kafka/kafka-server1-%d{yyyy-MM-dd}-%i.log log4j.appender.rolling.layout.type=PatternLayout log4j.appender.rolling.layout.pattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %m%n log4j.appender.rolling.policies.type=Policies log4j.appender.rolling.policies.time.type=TimeBasedTriggeringPolicy # Below is the default..just making explicit. log4j.appender.rolling.policies.time.interval=1 log4j.appender.rolling.policies.size.type=SizeBasedTriggeringPolicy log4j.appender.rolling.policies.size.size=20MB log4j.appender.rolling.strategy.type=DefaultRolloverStrategy # Delete all files older than 15 days log4j.appender.rolling.strategy.delete.type=Delete log4j.appender.rolling.strategy.delete.basePath=/var/log/kafka/ log4j.appender.rolling.strategy.delete.ifLastModified.type=IfLastModified log4j.appender.rolling.strategy.delete.ifLastModified.age=15d {% set loggers = { 'kafka': 'INFO', 'kafka.network.RequestChannel$': 'WARN', 'kafka.producer.async.DefaultEventHandler': 'DEBUG', 'kafka.request.logger': 'WARN', 'kafka.controller': 'TRACE', 'kafka.log.LogCleaner': 'INFO', 'state.change.logger': 'TRACE', 'kafka.authorizer.logger': 'WARN' } -%} {% if env['KAFKA_LOG4J_LOGGERS'] %} {% set loggers = parse_log4j_loggers(env['KAFKA_LOG4J_LOGGERS'], loggers) %} {% endif %} {% for logger,loglevel in loggers.items() %} log4j.logger.{{logger}}={{loglevel}} {% endfor %}
更新记录
- 2022年8月3日:Confluent官方文档仍在使用已被弃用的DailyRollingFileAppender组件。
- 2022年8月11日:已在Confluent社区论坛发布该问题,如有答案会同步更新。
内容的提问来源于stack exchange,提问作者lmk
相关产品推荐
相关产品推荐

