在Windows上重命名Kafka日志文件时,log4J(1.2.17版本)出现问题

cfh9epnr  于 2022-11-06  发布在  Windows
关注(0)|答案(1)|浏览(414)

我在Windows平台上运行Kafka 2.8.0版本,而该版本又使用log4J 1.2.17版本。我遇到以下log4j:ERROR无法重命名问题,由Zookeeper和Kafka服务器上的Log4j引起。请让我知道如何解决此问题?

Zookeeper日志:

[ERR] [ZooKeeper] log4j:ERROR Failed to rename [C:\kafka-2.8.0/logs/controller.log] to [C:\kafka-2.8.0/logs/controller.log.2021-07-21-00].

Kafka服务器日志:

log4j:ERROR Failed to rename [C:\kafka-2.8.0/logs/controller.log] to [C:\kafka-2.8.0/logs/controller.log.2021-07-21-00].

**注意:**controller.log和server.log文件经常出现此问题

下面是我目前正在使用的log4J属性文件,

log4j.properties文件:


# Unspecified loggers and loggers with additivity=true output to server.log and stdout

# Note that INFO only applies to unspecified loggers, the log level of the child logger is used otherwise

log4j.rootLogger=INFO, stdout, kafkaAppender

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.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

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

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

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

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

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

# Change the line below to adjust ZK client logging

log4j.logger.org.apache.zookeeper=INFO

# Change the two lines below to adjust the general broker logging level (output to server.log and stdout)

log4j.logger.kafka=INFO
log4j.logger.org.apache.kafka=INFO

# Change to DEBUG or TRACE to enable request logging

log4j.logger.kafka.request.logger=WARN, requestAppender
log4j.additivity.kafka.request.logger=false

# Uncomment the lines below and change log4j.logger.kafka.network.RequestChannel$ to TRACE for additional output

# related to the handling of requests

# log4j.logger.kafka.network.Processor=TRACE, requestAppender

# log4j.logger.kafka.server.KafkaApis=TRACE, requestAppender

# log4j.additivity.kafka.server.KafkaApis=false

log4j.logger.kafka.network.RequestChannel$=WARN, requestAppender
log4j.additivity.kafka.network.RequestChannel$=false

log4j.logger.kafka.controller=TRACE, controllerAppender
log4j.additivity.kafka.controller=false

log4j.logger.kafka.log.LogCleaner=INFO, cleanerAppender
log4j.additivity.kafka.log.LogCleaner=false

log4j.logger.state.change.logger=INFO, stateChangeAppender
log4j.additivity.state.change.logger=false

# Access denials are logged at INFO level, change to DEBUG to also log allowed accesses

log4j.logger.kafka.authorizer.logger=INFO, authorizerAppender
log4j.additivity.kafka.authorizer.logger=false
6tqwzwtp

6tqwzwtp1#

正如@OneCricketeer建议的那样,您应该将路径从/更改为\\
在配置文件中使用2个反斜杠:
C:\Kafka\配置\zookeeper.properties中:

dataDir=c:\\kafka\\zookeeper

C:\kafka\config\服务器.属性中:

log.dirs=c:\\kafka\\kafka-logs

也可以转到C:\kafka\config\log4j.properties
无论你在哪里看到这样的东西:

log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log

将其更改为:

log4j.appender.kafkaAppender.File=${kafka.logs.dir}\\server.log

这些都是您应该更改它的地方:

Line 26: log4j.appender.kafkaAppender.File=${kafka.logs.dir}\\server.log
Line 32: log4j.appender.stateChangeAppender.File=${kafka.logs.dir}\\state-change.log
Line 38: log4j.appender.requestAppender.File=${kafka.logs.dir}\\kafka-request.log
Line 44: log4j.appender.cleanerAppender.File=${kafka.logs.dir}\\log-cleaner.log
Line 50: log4j.appender.controllerAppender.File=${kafka.logs.dir}\\controller.log
Line 56: log4j.appender.authorizerAppender.File=${kafka.logs.dir}\\kafka-authorizer.log

相关问题