Java 隔离库';来自应用程序的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

我有一个使用slf4j和log4j的web应用程序。它部署在Wildfly 9上。不幸的是,我不得不使用一个第三方库,它通过编程方式重新配置log4j。它正在调用
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>