3

我不想使用standalone.xml 或CLI 配置日志记录,因为我的同事需要额外的步骤才能获得一个工作的开发环境。我希望将这些配置文件与我们的源代码一起签入并在部署时自动应用。

在 JBoss 5 中,可以在 jboss-log4j.xml 中声明日志记录。JBoss 7 中是否也有与此文件等效的文件?

我们想使用 slf4j 和 logback。

4

2 回答 2

6

如果您想使用自己的日志记录而不是 JBoss 日志记录,则需要针对您希望在自己的日志记录中使用的每个应用程序执行几个步骤:

排除 JBoss 日志记录

编写一个 jboss-deployment-structure.xml 文件以排除 jboss log4j 或 slf4j 或 JBoss 中包含的任何其他日志记录模块。

WAR 的示例...放置在 WAR/WEB-INF/

<jboss-deployment-structure>
    <deployment>
        <exclusions>
            <module name="org.slf4j"/>
        </exclusions>
    </deployment>
</jboss-deployment-structure>

包括你自己的罐子

只需将您自己的 jars 放在您的 lib 文件夹中

对于 WAR,放置在 WAR/WEB-INF/lib

包括您的日志记录配置

只需像平常一样包含您自己的配置文件

对于 WAR,放置在 WAR/WEB-INF/classes

使用 -D 标志启动 JBoss

使用以下命令运行您的服务器:

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

EAR 示例

Place jboss-deployment-structure.xml in EAR/META-INF

<jboss-deployment-structure>
    <sub-deployment name="myWar.war>
        <exclusions>
            <module name="org.slf4j"/>
        </exclusions>
    </sub-deployment>
    <sub-deployment name="myWar2.war>
        <exclusions>
            <module name="org.slf4j"/>
        </exclusions>
    </sub-deployment>
    <sub-deployment name="myEjb.jar>
        <exclusions>
            <module name="org.slf4j"/>
        </exclusions>
    </sub-deployment>
</jboss-deployment-structure>

EAR/lib,包括你的罐子

在每个部署中,为该configuration/properties部署添加

启动服务器:$./standalone.sh -Dorg.jboss.as.logging.per-deployment=false

这应该已经用您自己的 JAR 替换了 JBoss 版本,因此允许您自己的 JAR 和配置文件被拾取。如果您有任何问题,请告诉我。

于 2013-02-17T15:23:11.110 回答
3

您可以将 logback 配置添加到您的应用程序。您需要在应用程序中包含 logback。您可能必须使用类似于log4j 排除项的jboss-deployment-structure.xml来排除模块。不过,这只会为您的应用程序配置日志记录。org.slf4j

如果您担心只是配置日志记录子系统,那么根据您的环境,还有其他几种可能的工作方式。

第一个也是适用于任何环境的第一个是创建一个可以签入和运行的CLI 脚本。

${JBOSS_HOME}/bin/jboss-cli.sh --connect --file path/to/script.cli

如果您使用的是 maven,第二种可能性是使用maven 插件。您可以使用插件执行CLI 命令。只需execute-commands在部署目标运行之前添加要运行的目标。

于 2013-02-15T16:15:15.067 回答