在 JBoss 7.1 中使用 log4j

Posted

技术标签:

【中文标题】在 JBoss 7.1 中使用 log4j【英文标题】:Using log4j with JBoss 7.1 【发布时间】:2012-03-23 23:53:42 【问题描述】:

如何?

我的 WebContent/WEB-INF/lib 文件夹中有一个 log4j-1.2.16.jar。当我输出Logger.getRootLogger().getClass().toString() 的结果时,我得到class org.jboss.logmanager.log4j.BridgeLogger 这是错误的。

如果我将 Dependencies: org.apache.commons.logging 添加到我的 MANIFEST.MF 文件中,我会得到相同的结果。

这导致我的 log4j.properties 文件(我在 WEB-INF/classes 下创建)被忽略的问题。

【问题讨论】:

【参考方案1】:

很快就会有will just work for you 的方法,但目前您必须从部署中排除 log4j 依赖项。您还必须手动调用 PropertyConfigurator.configure() 来加载属性文件。

以下文件 (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" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>

然后在 WEB-INF/lib 目录中添加包含您自己版本的 log4j 应该可以正常工作。

【讨论】:

非常感谢您。我真的很沮丧。 什么不起作用?什么版本的 JBoss AS 或 WildFly?

以上是关于在 JBoss 7.1 中使用 log4j的主要内容,如果未能解决你的问题,请参考以下文章

在 jboss 7.1 中配置 MDB 和 MQ 时面临的问题

使用jboss变量时log4j错误

如何在 JBoss 7.1 中配置外部供应商 SSL 证书

在 Jboss 7.1 上部署 datasource.xml

从 JBoss 7.1 引用依赖 Jar 文件时出错

JBoss EAP 6.4 -> 7.1 使用休眠 4 而不是默认休眠 5