gpt4 book ai didi

log4j - jboss 作为 7.1.1 最终日志记录

转载 作者:行者123 更新时间:2023-12-01 16:33:06 27 4
gpt4 key购买 nike

我的耳朵将 war 作为子部署。 ear 文件有一个 META-INF 目录,该目录有一个 jboss-ejb-client.xml 文件,该文件只有一个 ejb-recievers 元素和一个 webscheduler.war。这场 war 使用 commons-logging-api.jar。此应用程序作为 7.1.1.final 部署在 jboss 上。我想使用 apache log4j 进行日志记录。于是我在ear的meta-inf目录下加了一个jboss-deployment-structure.xml

<jboss-deployment-structure>
<deployment>
<!-- Exclusions allow you to prevent the server from automatically adding some dependencies -->
<exclusions>
<module name="org.apache.log4j" />
<module name="org.log4j"/>
<module name="org.jboss.logging"/>
</exclusions>
</deployment>
<sub-deployment name="a.war">
<exclusions>
<module name="org.apache.log4j"/>
<module name="org.log4j"/>
<module name="org.jboss.logging"/>
</exclusions>
</sub-deployment>
</jboss-deployment-structure>

我在 war 的 lib 目录中有一个 commons-logging.properties 文件,其中包含以下内容,

    org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl

log4j.configuration=/usr/share/wth/jboss/jboss-as-7.1.1/standalone/configuration/log4j.xml

此外,除了 log4j-1.2.11.jar 之外,我在库中没有任何其他日志记录框架 jar。(如 SLF4j 等)。如您所见,log4j.xml 位于上述属性描述的目录中。

问题是当我启动 jboss 时,一些应用程序日志确实写入了 log4j.xml 中描述的日志文件(比如/a/b/c/srv.log),但同时日志也被写入了默认 srv.log 直接在 jboss 日志里面。(jboss/standalone/log/srv.log)。

jboss 不使用自己的日志记录并使用我提供的 log4j 配置,我错过了什么。

最佳答案

您的 jboss-deployment-structure.xml 应该如下所示:

<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.apache.log4j"/>
<module name="org.apache.commons.logging"/>
</exclusions>
</deploymen>
<sub-deployment name="a.war">
<exclusions>
<module name="org.apache.log4j"/>
<module name="org.apache.commons.logging"/>
</exclusions>
</sub-deployment>
</jboss-deployment-structure>

并且您应该在项目 lib 目录中包含自己的 jars。例如:

EAR
|-- META-INF
| |-- jboss-deployment-structure.xml
| `-- MANIFEST.MF
|-- lib
| |-- log4j.jar
| `-- commons.logging.jar
`-- a.war

确保您使用标志 -Dorg.jboss.as.logging.per-deployment=false 进行部署,否则日志记录可能无法工作。

例子:

$ cd $JBOSS_HOME/bin
$ ./standalone.sh -Dorg.jboss.as.logging.per-deployment=false

关于log4j - jboss 作为 7.1.1 最终日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15258331/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com