我用Java编程。我用过执行器服务。日志在主线程的指定trace.log文件中打印。但是对于执行程序服务创建的线程,日志将打印在Jboss server.log中。如何在trace.log中而不是在server.log中获取这些日志?
我发现并发性不应该影响slf4j的功能。 Is SLF4J good to be used in a multithreaded application for logging to a database?
有人可以告诉我在这里缺少什么吗?
提前致谢。
答案 0 :(得分:0)
你必须从JBoss中排除SLF4J。您可以使用jboss-deployment-structure.xml
来完成我的jboss-deployment-structure位于资源/ META-INF文件夹下的EAR模块中,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
<deployment>
<exclusions>
<module name="org.slf4j" slot="main" />
<module name="org.slf4j.impl" slot="main" />
</exclusions>
</deployment>
<sub-deployment name="some-war.war">
<exclusions>
<module name="org.slf4j" />
<module name="org.slf4j.impl" />
</exclusions>
</sub-deployment>
在some-war.war
模块中,我可以使用logback,它可以正确记录到已定义的文件中。