Kafka Log4j.xml appender
我已经安装了kafka,现在工作正常。我正在尝试将log appender添加到现有应用程序的log4j.xml文件中,以便将消息推送到kafka中,因此任何log4j.xml kafka appender的示例都会非常有帮助,我在pom.xml中添加了以下依赖项Kafka Log4j.xml appender,log4j,apache-kafka,Log4j,Apache Kafka,我已经安装了kafka,现在工作正常。我正在尝试将log appender添加到现有应用程序的log4j.xml文件中,以便将消息推送到kafka中,因此任何log4j.xml kafka appender的示例都会非常有帮助,我在pom.xml中添加了以下依赖项 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.10<
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.10</artifactId>
<version>0.8.2.2</version>
</dependency>
org.apache.kafka
卡夫卡2.10
0.8.2.2
下面是我添加到log4j.xml中的内容
<appender name="kafka" class="kafka.producer.KafkaLog4jAppender">
<param name="topic" value="test" />
<param name="brokerList" value="localhost:9092" />
<param name="compressionType" value="none" />
<param name="requiredNumAcks" value="0" />
<param name="syncSend" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{dd.MM.yyyy HH:mm:ss}] %p: %c{1}.%M() - %m%n" />
</layout>
</appender>
这是添加这个之后的错误
java.lang.NoSuchMethodError:
org.apache.log4j.spi.LoggingEvent.getTimeStamp()J位于
kafka.producer.KafkaLog4jAppender.append(KafkaLog4jAppender.scala:72)
在
org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230)
在
appenderatachableimpl.appenderlooponappenders(appenderatachableimpl.java:65)
位于org.apache.log4j.Category.callAppenders(Category.java:203)
org.apache.log4j.Category.forcedLog(Category.java:388)位于
org.apache.log4j.Category.log(Category.java:853)位于
org.slf4j.impl.Log4jLoggerAdapter.log(Log4jLoggerAdapter.java:597)位于
org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:159)
在
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:272)
在
org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
在
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
在
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
在
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
在
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
在
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
在
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
在
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:656)
在
org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1635)
在
Executors$RunnableAdapter.call(Executors.java:471)
在java.util.concurrent.FutureTask.run(FutureTask.java:262)中
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
在
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
运行(Thread.java:745)
这是我的结果。我用卡夫卡0.8.2.2测试了它。请确保添加以下依赖项
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.10</artifactId>
<version>0.8.2.2</version>
</dependency>
下面是我使用log4j的示例应用程序代码:-
package org.nk.kafkatut.producer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Log4jAppenderDemo {
public static final Logger LOG = LoggerFactory.getLogger(Log4jAppenderDemo.class.getName());
public static void main(String[] args) {
LOG.info("test message:1");
LOG.info("test message:2");
}
}我已经更新了log4j.xml条目,并在更新后看到了错误that@GG0424看起来像是log4j依赖性问题。请您发布log4j.xml的全部内容。
package org.nk.kafkatut.producer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Log4jAppenderDemo {
public static final Logger LOG = LoggerFactory.getLogger(Log4jAppenderDemo.class.getName());
public static void main(String[] args) {
LOG.info("test message:1");
LOG.info("test message:2");
}