我在线程“main”java中遇到错误异常。lang.ExceptionInInitializerError引起的错误:org。阿帕奇。登录中。log4j。果心配置。ConfigurationException:从log4j1迁移时,没有可用于AsyncAppender ASYNC的appender。x到log4j 2。x使用Log4j 1。x桥根据https://logging.apache.org/log4j/2.x/manual/migration.html.
我曾尝试在'ASYNC'appender的appender ref中添加'CONSOLE'appender,但它对我不起作用。(参考:https://issues.apache.org/jira/browse/LOG4J2-894)
完整堆栈跟踪:
线程“main”中的异常org.apache.logging.log4j.core.impl.ExceptionInSynalizerError由以下原因引起:actory.getConfigurationException:AsyncAppender ASYNC在actory.java:152AsyncAorg.apache.logging.log4j.core.impl.(AsyncAactory.get)在actory.java:45AbstractCorg.apache.logging.log(AbstractCanager.get)anager.java:307LoggerCorg.apache.log配置(LoggerCanager.get)在anager.java:215LoggerCorg.apache.log(LoggerContext.java:603)在org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:620)在org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:226)在java.lang.Log4jContextForg.apache.logging.log4j.core.config.Context(Log4jContextForg.apache.logging.log4j.core.appender.)ppender.startLog4jContextFppender.java:117Context(Log4jContextForg.apache.logging.log4j.core.config.)在onfiguration.start4j。LogMonfiguration.java:255Context(LogMorg.apache.logging.log4j.core.)在ontext.set4j。LogManager$Private ateMontext.java:530Context(LogMorg.apache.logging.log4j.core.)在ontext.reconfigure4j。LogManager. getLogger(LogManager. java: 74)在org. slf4j. imp。Log4jLoggerFacory. getLogger(Log4jLoggerFacory. java:AbstractReFreshableConfigApplication Context.(AbstractReFreshableConfigApplication Context. java: 58)at org. springframe. conttext. support。AbstractXmlApplication Context.(AbstractXmlApplication Context. java: 61)at org. springframe. conttext. support。ClassPathXmlApplication Context.(ClassPathXmlApplication Context. java: 136)at org. springframe. cont. support。ClassPathXmlApplication Context. java: 83)at com. sm. public. business. security。StrongMailSymmetricEncryptionUtics。(StrongMailSymmetricEncryptionUtily. java: 53)
**我的log4j2。xml**:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Async name="ASYNC">
<AppenderRef ref="R"/>
<AppenderRef ref="CONSOLE"/>
</Async>
<Async name="ASYNC_WARN">
<ThresholdFilter level="WARN"/>
<AppenderRef ref="R"/>
<AppenderRef ref="CONSOLE"/>
</Async
<Console name="CONSOLE" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} - %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="com.sm" level="WARN" additivity="false">
<AppenderRef ref="ASYNC"/>
</Logger>
<Logger name="com.sm.random" level="WARN" additivity="false">
<AppenderRef ref="ASYNC_WARN"/>
</Logger>
<Logger name="com.sm.services" level="WARN" additivity="false">
<AppenderRef ref="ASYNC"/>
</Logger>
<Root level="WARN">
<AppenderRef ref="ASYNC"/>
</Root>
</Loggers>
</Configuration>
谢谢
在我的例子中,这是因为日志目录访问权限被拒绝
此外,异步附加器有一个
发生此异常可能有多种原因。以下是一些:
1)项目中或您使用的依赖jar中存在重复的log4j配置
2) log4j文件中未添加附加器
3)如果正确添加了附加程序,则两个或多个log4j配置发生冲突。
在我的例子中,发生这种情况是因为两个log4j2。已配置xml文件。
嗨,我遇到了一些使用log4j的代码。我想移动到log4j2。从http://logging.apache.org/log4j/2.x/manual/migration.html中,我发现可以使用log4j-1.2-api.jar。我有以下问题: > 在代码中,我有一个自定义的appender(正如链接中给出的,我不应该使用类appender的内部),这意味着我不能使用log4j-1.2-api.
在我们当前的项目中,我们使用Java8,SpringBoot1.5.4。ApacheCamel 2.17.1版团队计划将Camel升级到3.4版。因为它支持Java8。我看到了camel文档,其中声明将从3.4中放弃对Java8的支持。X版本之后,但很难找到与camel 3.4一起使用所需的spring boot版本的兼容版本。我需要升级spring启动版本吗?如果是的话,会是哪个版本,或者在哪里
我开发了一个web服务应用程序,它可以很好地与jersey 1.x(1.16)一起工作。我最近试图迁移到最新的稳定的jersey 2.8版本 我删除了V1.16的所有jersey jar文件,然后从链接-https://jersey.java.net/download.html下载了V2.8的jersey jar 根据文档,我了解到,我应该有最新的servlet jar,servlet JAR2.
新的中间件签名 Koa v2 引入了新的中间件签名。 旧签名中间件(v1.x)支持将在 v3 中删除 新的中间件签名是这样的: // 使用异步箭头方法 app.use(async (ctx, next) => { try { await next() // next 现在是一个方法 } catch (err) { ctx.body = { message: err
Figure: Great Migration by gekkodigitalmedia licensed under Public Domain ()