Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Log4j cassandra appender异常_Cassandra_Log4j2_Appender - Fatal编程技术网

Log4j cassandra appender异常

Log4j cassandra appender异常,cassandra,log4j2,appender,Cassandra,Log4j2,Appender,我想使用下面提到的cassandra appender buıam GetInd错误向cassandra db发送日志消息 我已经在docker上创建了独立的cassandra,在localhost 9042上使用demo键空间和logs表 Exception in thread "main" java.lang.NoSuchMethodError: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager$Abstrac

我想使用下面提到的cassandra appender buıam GetInd错误向cassandra db发送日志消息

我已经在docker上创建了独立的cassandra,在localhost 9042上使用demo键空间和logs

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager$AbstractFactoryData.<init>(I)V
    at org.apache.logging.log4j.nosql.appender.cassandra.CassandraManager$FactoryData.<init>(CassandraManager.java:193)
    at org.apache.logging.log4j.nosql.appender.cassandra.CassandraManager$FactoryData.<init>(CassandraManager.java:176)
    at org.apache.logging.log4j.nosql.appender.cassandra.CassandraManager.getManager(CassandraManager.java:127)
    at org.apache.logging.log4j.nosql.appender.cassandra.CassandraAppender$Builder.build(CassandraAppender.java:177)
    at org.apache.logging.log4j.nosql.appender.cassandra.CassandraAppender$Builder.build(CassandraAppender.java:52)
    at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
    at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:964)
    at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:904)
    at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:896)
    at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:514)
    at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:238)
    at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:250)
    at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:548)
    at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:620)
    at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:637)
    at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231)
    at org.apache.logging.log4j.core.async.AsyncLoggerContext.start(AsyncLoggerContext.java:76)
    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.commons.logging.LogAdapter$Log4jLog.<clinit>(LogAdapter.java:155)
    at org.apache.commons.logging.LogAdapter$Log4jAdapter.createLog(LogAdapter.java:122)
我已经更改了log4j nosql与log4j cassandra的依赖关系,并且我已经为cassandra驱动程序核心添加了排除,用于度量核心下面提到的异常更改

<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-core</artifactId>
    <exclusions>
        <exclusion>
            <groupId>io.dropwizard.metrics</groupId>
            <artifactId>metrics-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-cassandra</artifactId>
</dependency>
我已经添加了指标jmx站点的依赖性指南
但应用程序在生成记录器时再次抛出下面的异常

<dependency>
  <groupId>io.dropwizard.metrics</groupId>
  <artifactId>metrics-jmx</artifactId>
  <version>4.0.5</version>
</dependency>

io.dropwizard.metrics
度量jmx
4.0.5
线程“main”java.lang.NoClassDefFoundError中的异常:com/codahale/metrics/JmxReporter 位于com.datastax.driver.core.Metrics.(Metrics.java:146) 位于com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1501) 位于com.datastax.driver.core.Cluster.init(Cluster.java:208) 位于com.datastax.driver.core.Cluster.connectAsync(Cluster.java:376) 位于com.datastax.driver.core.Cluster.connect(Cluster.java:332) 位于org.apache.logging.log4j.cassandra.CassandraManager.startupInternal(CassandraManager.java:74) 位于org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.startup(AbstractDatabaseManager.java:222) 位于org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender.start(AbstractDatabaseAppender.java:172) 位于org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:266) 位于org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:548) 位于org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:620) 位于org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:637) 位于org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231) 位于org.apache.logging.log4j.core.async.AsyncLoggerContext.start(AsyncLoggerContext.java:76) 位于org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153) 位于org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45) 位于org.apache.logging.log4j.LogManager.getContext(LogManager.java:194) 位于org.apache.logging.log4j.LogManager.getLogger(LogManager.java:581) 位于com.example.demo.Application(Application.java:13) 原因:java.lang.ClassNotFoundException:com.codahale.metrics.JmxReporter 位于java.net.URLClassLoader.findClass(URLClassLoader.java:382) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:424) 位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
谢谢

我可以看到,您在nosql记录器中使用的是log4j 2.8.1,而spring使用的是2.11.2


您应该从spring-boot-starter-log4j2中排除log4j2。

您可能有多个版本的log4j2。你能做mvn dependency:tree并显示结果吗?@SimonMartinelliı添加了Log4j2相关分支我将log4j nosql(2.8.1)更改为log4j cassandra(2.11.2)但是,我得到了上面提到的另一个异常。调用this.jmxReporter=jmxReporter.forRegistry(registry).inDomain(manager.clusterName+“-Metrics”).build()时在com.datastax.driver.core.Metrics中引起的问题;如何禁用JMXReporting?com.datastax.driver.core.MetricsOptions>jmxEnabled
+- org.springframework.boot:spring-boot-starter-log4j2:jar:2.1.5.RELEASE:compile
[INFO] |     |  +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.11.2:compile
[INFO] |     |  |  \- org.apache.logging.log4j:log4j-api:jar:2.11.2:compile
[INFO] |     |  +- org.apache.logging.log4j:log4j-core:jar:2.11.2:compile
[INFO] |     |  +- org.apache.logging.log4j:log4j-jul:jar:2.11.2:compile
[INFO] |     |  \- org.slf4j:jul-to-slf4j:jar:1.7.26:compile
[INFO] |     +- org.springframework.boot:spring-boot-configuration-processor:jar:2.1.5.RELEASE:compile
[INFO] |     +- com.lmax:disruptor:jar:3.3.6:compile
[INFO] |     +- com.datastax.cassandra:cassandra-driver-core:jar:3.6.0:compile
[INFO] |     |  +- io.netty:netty-handler:jar:4.1.36.Final:compile
[INFO] |     |  |  +- io.netty:netty-common:jar:4.1.36.Final:compile
[INFO] |     |  |  +- io.netty:netty-buffer:jar:4.1.36.Final:compile
[INFO] |     |  |  +- io.netty:netty-transport:jar:4.1.36.Final:compile
[INFO] |     |  |  |  \- io.netty:netty-resolver:jar:4.1.36.Final:compile
[INFO] |     |  |  \- io.netty:netty-codec:jar:4.1.36.Final:compile
[INFO] |     |  +- com.google.guava:guava:jar:19.0:compile
[INFO] |     |  +- com.github.jnr:jnr-ffi:jar:2.1.7:compile
[INFO] |     |  |  +- com.github.jnr:jffi:jar:1.2.16:compile
[INFO] |     |  |  +- com.github.jnr:jffi:jar:native:1.2.16:runtime
[INFO] |     |  |  +- org.ow2.asm:asm:jar:5.0.3:compile
[INFO] |     |  |  +- org.ow2.asm:asm-commons:jar:5.0.3:compile
[INFO] |     |  |  +- org.ow2.asm:asm-analysis:jar:5.0.3:compile
[INFO] |     |  |  +- org.ow2.asm:asm-tree:jar:5.0.3:compile
[INFO] |     |  |  +- org.ow2.asm:asm-util:jar:5.0.3:compile
[INFO] |     |  |  \- com.github.jnr:jnr-x86asm:jar:1.0.2:compile
[INFO] |     |  \- com.github.jnr:jnr-posix:jar:3.0.44:compile
[INFO] |     |     \- com.github.jnr:jnr-constants:jar:0.9.9:compile
[INFO] |     \- org.apache.logging.log4j:log4j-cassandra:jar:2.11.2:compile
<dependency>
  <groupId>io.dropwizard.metrics</groupId>
  <artifactId>metrics-jmx</artifactId>
  <version>4.0.5</version>
</dependency>
Exception in thread "main" java.lang.NoClassDefFoundError: com/codahale/metrics/JmxReporter
    at com.datastax.driver.core.Metrics.<init>(Metrics.java:146)
    at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1501)
    at com.datastax.driver.core.Cluster.init(Cluster.java:208)
    at com.datastax.driver.core.Cluster.connectAsync(Cluster.java:376)
    at com.datastax.driver.core.Cluster.connect(Cluster.java:332)
    at org.apache.logging.log4j.cassandra.CassandraManager.startupInternal(CassandraManager.java:74)
    at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.startup(AbstractDatabaseManager.java:222)
    at org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender.start(AbstractDatabaseAppender.java:172)
    at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:266)
    at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:548)
    at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:620)
    at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:637)
    at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231)
    at org.apache.logging.log4j.core.async.AsyncLoggerContext.start(AsyncLoggerContext.java:76)
    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.LogManager.getLogger(LogManager.java:581)
    at com.example.demo.Application.<clinit>(Application.java:13)
Caused by: java.lang.ClassNotFoundException: com.codahale.metrics.JmxReporter
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)