I am trying to direct my application logs deployed over jboss eap 7 and I have configured the appender as below;

appender.Kafka.type = Kafka
appender.Kafka.name = Kafka
appender.Kafka.topic = my-logs
appender.Kafka.syncSend = true
appender.Kafka.sendEventTimestamp = true
appender.Kafka.layout.type = PatternLayout
appender.Kafka.layout.pattern = [%-5p]%d{yyyyMMdd HH:mm:ss.SSSS} %m%n
appender.Kafka.property1.type=Property
appender.Kafka.property1.name=bootstrap.servers
appender.Kafka.property1.value=192.168.100.60:29092

But I am keep getting below exception when my application is trying to sue the appender.;

2024-03-29 14:40:39,299 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121) ERROR StatusConsoleListener Could not create plugin of type class org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender for element Kafka: java.lang.NoClassDefFoundError: Could not initialize class org.apache.logging.log4j.core.appender.mom.kafka.KafkaManager
2024-03-29 14:40:39,300 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)  java.lang.NoClassDefFoundError: Could not initialize class org.apache.logging.log4j.core.appender.mom.kafka.KafkaManager
2024-03-29 14:40:39,302 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender$Builder.build(KafkaAppender.java:79)
2024-03-29 14:40:39,307 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender$Builder.build(KafkaAppender.java:53)
2024-03-29 14:40:39,307 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:124)
2024-03-29 14:40:39,308 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1138)
2024-03-29 14:40:39,308 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1063)
2024-03-29 14:40:39,309 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1055)
2024-03-29 14:40:39,309 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:664)
2024-03-29 14:40:39,309 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:258)
2024-03-29 14:40:39,310 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:304)
2024-03-29 14:40:39,310 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:621)
2024-03-29 14:40:39,310 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.LoggerContext.onChange(LoggerContext.java:757)
2024-03-29 14:40:39,311 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.util.AbstractWatcher$ReconfigurationRunnable.run(AbstractWatcher.java:93)
2024-03-29 14:40:39,311 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at java.base/java.lang.Thread.run(Thread.java:829)
2024-03-29 14:40:39,312 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121) ERROR StatusConsoleListener Unable to invoke factory method in class org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender for element Kafka: java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender
2024-03-29 14:40:39,312 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)  java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender
2024-03-29 14:40:39,312 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.findFactoryMethod(PluginBuilder.java:260)
2024-03-29 14:40:39,313 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:136)
2024-03-29 14:40:39,313 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1138)
2024-03-29 14:40:39,313 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1063)
2024-03-29 14:40:39,313 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1055)
2024-03-29 14:40:39,314 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:664)
2024-03-29 14:40:39,320 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:258)
2024-03-29 14:40:39,321 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:304)
2024-03-29 14:40:39,321 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:621)
2024-03-29 14:40:39,321 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.LoggerContext.onChange(LoggerContext.java:757)
2024-03-29 14:40:39,322 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at com.monitor//org.apache.logging.log4j.core.util.AbstractWatcher$ReconfigurationRunnable.run(AbstractWatcher.java:93)
2024-03-29 14:40:39,322 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121)     at java.base/java.lang.Thread.run(Thread.java:829)
2024-03-29 14:40:39,323 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121) ERROR StatusConsoleListener Null object returned for Kafka in Appenders.
2024-03-29 14:40:39,323 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121) ERROR StatusConsoleListener Unable to locate appender "Kafka" for logger config "ALERT.APP"
2024-03-29 14:40:39,324 INFO  [stdout] (Log4j2-TF-140-ConfigurationFileWatcher-121) ERROR StatusConsoleListener Unable to locate appender "Kafka" for logger config "DIAGNOSTIC.APP"

I have loaded the jars using jboss modules and I can confirm that kafka-client-jar is loaded, the problem is even before it try to create the producer, Logger is failing to initialise the KafkaManager. KafkaAppender is loaded form one of the jar in my modules which is part of monitor package under log4j-core library. I can confirm that there are other KafkaManager class exist in the classpath but they are all part of different log4j-core jars in the classpath and I have verified the package in each jar and class is same across the jars. So not sure what am I missing!

0

There are 0 best solutions below