[
https://issues.apache.org/jira/browse/LOG4J2-2375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16553750#comment-16553750
]
zhangjk commented on LOG4J2-2375:
---------------------------------
hi [~garydgregory]
the exception stack is :
{code:java}
Exception in thread "main" java.lang.ExceptionInInitializerError
at
org.apache.kafka.clients.producer.ProducerConfig.<clinit>(ProducerConfig.java:225)
at
org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:303)
at com.zhang.Producer.<init>(KafkaTest.scala:88)
at
com.zhang.KafkaTest$.delayedEndpoint$com$zhang$KafkaTest$1(KafkaTest.scala:21)
at com.zhang.KafkaTest$delayedInit$body.apply(KafkaTest.scala:17)
at scala.Function0.apply$mcV$sp(Function0.scala:34)
at scala.Function0.apply$mcV$sp$(Function0.scala:34)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App.$anonfun$main$1$adapted(App.scala:76)
at scala.collection.immutable.List.foreach(List.scala:389)
at scala.App.main(App.scala:76)
at scala.App.main$(App.scala:74)
at com.zhang.KafkaTest$.main(KafkaTest.scala:17)
at com.zhang.KafkaTest.main(KafkaTest.scala)
Caused by: java.lang.NullPointerException
at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:62)
at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:75)
at
org.apache.kafka.clients.producer.ProducerConfig.<init>(ProducerConfig.java:365)
at
org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:303)
at
org.apache.logging.log4j.core.appender.mom.kafka.DefaultKafkaProducerFactory.newKafkaProducer(DefaultKafkaProducerFactory.java:40)
at
org.apache.logging.log4j.core.appender.mom.kafka.KafkaManager.startup(KafkaManager.java:131)
at
org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.start(KafkaAppender.java:175)
at
org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:265)
at
org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:547)
at
org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:619)
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:153)
at
org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
at
org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:121)
at
org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43)
at
org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)
at
org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:355)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:380)
at
org.apache.kafka.clients.CommonClientConfigs.<clinit>(CommonClientConfigs.java:32)
... 14 more
{code}
> When KafkaAppender is used with other KafkaProducer, there is a problem.
> ------------------------------------------------------------------------
>
> Key: LOG4J2-2375
> URL: https://issues.apache.org/jira/browse/LOG4J2-2375
> Project: Log4j 2
> Issue Type: Bug
> Components: Appenders
> Affects Versions: 2.11.0
> Environment: scala 2.12.6
> kafka 1.1.0
> log4j2 2.11.0
> Reporter: zhangjk
> Priority: Critical
>
> hi:
> When i use the log4j2's KafkaAppender , I found a bug. the property CONFIG
> of the ProducerConfig is null.
> here's my code:
> log4j2.xml
> {code:java}
> <Appenders>
> <Kafka name="Kafka" topic="test" key ="KafkaTestKey">
> <PatternLayout pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level
> %class{36} %L %M - %msg%xEx%n"/>
> <Property name="bootstrap.servers">localhost:9092</Property>
> </Kafka>
> </Appenders>
> {code}
> the main class:
> {code:java}
> object KafkaTest extends App {
> // this is scala code.
> // create a KafkaProducer
> val p = new Producer
> }
> {code}
> producer code:
> {code:java}
> class Producer {
> val props = {
> val p = new Properties()
> ....
> p
> }
> val producer = {
> val p = new KafkaProducer[Integer, String](props)
> p
> }
> }
> {code}
> The reason for this BUG is that: the `new Producer` is first initialized,
> and the `ProducerConfig` has a static method block, and it called the
> `CommonClientConfigs` class. in the `CommonClientConfigs` class, it has a
> static Log property, so, this will initialize the Log4j2's configuration, and
> this will call a startup method of the Appender, it actually calls the
> KafkaAppender's method. and then the method create a new `KafkaProducer`,
> this will create a new `ProducerConfig` instance, but the static method block
> is not completed, so the `CONFIG` is null. this cause the
> `NullPointerException`
> my english is bad, so , hope to understand what i mean
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)