Kafka Log4j.xml appender

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<

我已经安装了kafka,现在工作正常。我正在尝试将log appender添加到现有应用程序的log4j.xml文件中,以便将消息推送到kafka中,因此任何log4j.xml kafka appender的示例都会非常有帮助,我在pom.xml中添加了以下依赖项

  <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");
}