使用log4j2将日志发送到Kafka

3

我尝试使用log4j2 Kafka appender将日志发送到Kafka主题。以下是我的log4j2.properties文件:

rootLogger.level=all
rootLogger.type=asyncRoot

logger.main.name=main
logger.main.level=all
logger.main.type=asyncLogger
logger.main.appenderRefs=stdout, kafka
logger.main.appenderRef.stdout.ref=STDOUT
logger.main.appenderRef.kafka.ref=KAFKA

appender.stdout.type=Console
appender.stdout.name=STDOUT
appender.stdout.layout.type=PatternLayout
appender.stdout.layout.pattern=[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%level]\t[%marker] %msg%n

appender.kafka.type=Kafka
appender.kafka.name=KAFKA
appender.kafka.bootstrap.servers=urls:host
appender.kafka.topic=topic_name
appender.kafka.layout.type=PatternLayout
appender.kafka.layout.pattern="some pattern

当我使用这个配置启动时,会出现异常:

Exception in thread "main" org.apache.logging.log4j.core.config.ConfigurationException: No type attribute provided for component bootstrap at org.apache.logging.log4j.core.config.properties.PropertiesConfigurationBuilder.createComponent(PropertiesConfigurationBuilder.java:334) at org.apache.logging.log4j.core.config.properties.PropertiesConfigurationBuilder.processRemainingProperties(PropertiesConfigurationBuilder.java:348) at org.apache.logging.log4j.core.config.properties.PropertiesConfigurationBuilder.createAppender(PropertiesConfigurationBuilder.java:225) at org.apache.logging.log4j.core.config.properties.PropertiesConfigurationBuilder.build(PropertiesConfigurationBuilder.java:158) at org.apache.logging.log4j.core.config.properties.PropertiesConfigurationFactory.getConfiguration(PropertiesConfigurationFactory.java:52) at org.apache.logging.log4j.core.config.properties.PropertiesConfigurationFactory.getConfiguration(PropertiesConfigurationFactory.java:35) at org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:453) at org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:385) at org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration(ConfigurationFactory.java:260) at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:615) at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:636) at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:243) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45) at org.apache.logging.log4j.LogManager.getContext(LogManager.java:174) at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:648) at org.apache.logging.log4j.LogManager.getRootLogger(LogManager.java:682)

出了什么问题?
1个回答

4

我认为你应该在 bootstrap.servers 前面添加 property

appender.kafka.property.bootstrap.servers=localhost:9092

2
谢谢。我已经找到了解决方案,但我认为这对某些人可能会有用。 - I. Petrov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接