Java 隔离库';来自应用程序的log4j';是一个
我有一个使用slf4j和log4j的web应用程序。它部署在Wildfly 9上。不幸的是,我不得不使用一个第三方库,它通过编程方式重新配置log4j。它正在调用Java 隔离库';来自应用程序的log4j';是一个,java,logging,log4j,wildfly,slf4j,Java,Logging,Log4j,Wildfly,Slf4j,我有一个使用slf4j和log4j的web应用程序。它部署在Wildfly 9上。不幸的是,我不得不使用一个第三方库,它通过编程方式重新配置log4j。它正在调用PropertyConfigurator.configure(),无法使用log4j-over-slf4j。根据: 当应用程序调用网桥中不存在的log4j组件时,log4j-over-slf4j模块将不工作。例如,当应用程序代码直接引用log4j附加器、过滤器或PropertyConfigurator时,log4j-over-slf4j
PropertyConfigurator.configure()代码>,无法使用log4j-over-slf4j。根据:
当应用程序调用网桥中不存在的log4j组件时,log4j-over-slf4j模块将不工作。例如,当应用程序代码直接引用log4j附加器、过滤器或PropertyConfigurator时,log4j-over-slf4j不足以替代log4j
我试图将JAR放入jboss模块,但该库仍然更改了我的配置。使用模块是否可以将库的日志记录功能与web应用程序的日志记录功能隔离?还是别的什么
编辑:我还尝试使用不同的类加载器(使用定制的log4j)(通过使用jboss部署结构.xml)
在模块中使用wildfly提供的log4j,但是当库尝试配置其log4j时,我得到以下错误:
20:51:32719错误[stderr](默认任务-1)log4j:错误“org.apache.log4j.RollingFileAppender”对象不能分配给“org.apache.log4j.Appender”变量。
20:51:32721错误[stderr](默认任务-1)log4j:ERROR类“org.apache.log4j.Appender”是由
20:51:32723错误[stderr](默认任务-1)log4j:ERROR[ModuleClassLoader for Module“org.jboss.log4j.logmanager:main”来自本地模块加载器@66d1af89(finder:local Module finder@8646db9(根:D:\wildfly-9.0.2.Final\modules,D:\wildfly-9.0.2.Final\modules\system\layers\base)),而类型为
20:51:32725错误[stderr](默认任务-1)log4j:ERROR“org.apache.log4j.RollingFileAppender”由[ModuleClassLoader for Module“deployment.my-application-1.0.0-SNAPSHOT.war:main”从服务模块加载器加载
edit2:所以看起来是这样的。因此,一种可能性是。至少,类加载相关的异常在使用它时会消失。但问题依然存在,如果这是一个“好”的解决方案
另外,根据,TCCL不应由框架使用。是使用propertyConfiguration.configure(Properties)
?@JamesR.Perkins的第三方库。是的,库正在调用它,我不确定可以做什么。即使配置了log4j,slf4j也应该工作。它应该只使用日志子系统配置。server.log
中是否缺少日志语句?@JamesR.Perkins是的,在第一次调用库后,日志语句丢失。一种可行的方法是将其放入一个模块中并使用ABCustomLog4j.jar,即不依赖于wildfly的log4j。然后我可以使用库的配置机制,该机制是隔离的,不能使用wildfly进行配置。不理想,但它可以工作。您是否包括slf4j到log4j的绑定?我认为应该使用slf4j jboss logmanager绑定。
<?xml version="1.0"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<exclusions>
<module name="org.apache.log4j" slot="main"/>
</exclusions>
</deployment>
</jboss-deployment-structure>