JBoss AS 6和Log4j

时间:2013-04-18 14:21:32

标签: jboss log4j jboss6.x

我知道有很多关于这个主题的帖子,但我发现其中没有任何有用或相关的信息。

我有一个简单的要求。我正在从JBoss AS 4.0.4迁移到JBoss AS 6.在我的4.0.4环境中,我在server / myconfig / conf文件夹中有一个log4j.xml,在server / myconfig / lib中有一个log4j.jar。我意识到JBoss AS 6已经改为原生日志框架。我们严重依赖log4j并且改变是不切实际的。我看过很多帖子说要在你的应用程序中打包log4j jar和log4j.xml文件。我在deploy和lib中有几十个jar和war文件。我是否真的希望将log4j.jar和log4j.xml打包到所有这些中?我希望不会,所以设置-Djboss.as.logging.per-deployment = false会有帮助吗?但我仍然看到有人说将log4j.jar和log4j.xml放入ear / war文件中,即使使用该集也是如此。

如果有人可以请告诉我如何模仿我的4.0.4设置。

谢谢, 保罗

3 个答案:

答案 0 :(得分:0)

我认为没有必要在你的应用程序中打包log4j jar。

做以下事情:

1。)在Standalone.conf.bat文件中设置以下参数 设置“JAVA_OPTS =%JAVA_OPTS%-Dorg.jboss.as.logging.per-deployment = false

2。)为log4j制作一个模块。在log4j的modules文件夹中。作为参考,您可以检查已经存在的其他文件夹。

3.。)将一个jboss-deployment-structure.xml放在web-inf文件夹中。 该文件将包含以下内容

<jboss-deployment-structure>
    <deployment>
        <include>
            <module name="org.apache.log4j" />
        </include>
    </deployment>
</jboss-deployment-structure>

它将在您的应用程序中包含log4j jar。

答案 1 :(得分:0)

我在Jboss 6.1上使用Log4J没有任何问题。

从来没有在任何地方包含Log4J jar,似乎包括在内(检查一下,我在client/lib下找到了它。)

我唯一需要做的就是将我的Log4J配置集成到server/<config>/deploy/jboss-logging.xml中(布局非常类似于log4j.xml)。

之后我只在我的课程中使用org.apache.log4j.Logger,一切都按预期工作。

答案 2 :(得分:0)

JBoss自动为log4J 1.2,SLF4J,common-logging和java.util.logging注入API。 NOT 将其与应用程序打包在一起。

您可以将日志记录配置添加到: serverDirectory \ standalone \ configuration \ standalone.xml (或您选择使用的任何配置)。

以下是添加日志记录配置的部分(JBoss EAP 6):

<subsystem xmlns="urn:jboss:domain:logging:1.3">
    <root-logger>
        <level name="INFO"/>
        <handlers>
            <handler name="CONSOLE"/>
            <handler name="FILE"/>
        </handlers>
    </root-logger>
</subsystem>