我不想使用standalone.xml或CLI配置日志记录,因为它需要额外的步骤才能让我的同事获得可用的开发环境。我希望使用我们的源代码签入这些配置文件,并在部署时自动应用。
使用JBoss 5,可以在jboss-log4j.xml中声明日志记录。在JBoss 7中是否还有这个文件的等价物?
我们想使用slf4j和logback。
答案 0 :(得分:6)
如果您想使用自己的日志记录而不是JBoss日志记录,则需要针对您自己的日志记录中的每个应用程序执行几个步骤:
排除JBoss记录
编写一个jboss-deployment-structure.xml文件,以排除jboss log4j或slf4j或JBoss中包含的任何其他日志记录模块。
WAR / WEB-INF /
中WAR ...的示例<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.slf4j"/>
</exclusions>
</deployment>
</jboss-deployment-structure>
加入您自己的罐子
只需将自己的jar放入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
中,加入您的JARS
在每个部署中,为该部署添加configuration/properties
启动服务器:$./standalone.sh -Dorg.jboss.as.logging.per-deployment=false
这应该已经用你自己的JBAR版本替换了JAR,因此允许你自己的JAR和配置文件被选中。如果您有任何问题,请告诉我。
答案 1 :(得分:3)
您可以向应用程序添加logback配置。您需要在应用程序中包含logback。 可能必须使用与jboss-deployment-structure.xml类似的log4j exclusion来排除org.slf4j
模块。这只会为您的应用程序配置日志记录。
如果您只关心配置日志记录子系统,那么根据您的环境,还有其他几种可能的方法。
可以在任何环境中使用的第一个和第一个是创建一个可以签入并运行的CLI script。
${JBOSS_HOME}/bin/jboss-cli.sh --connect --file path/to/script.cli
如果你正在使用maven,第二种可能性就是使用maven plugin。您可以使用插件执行CLI commands。只需在部署目标运行之前添加execute-commands
目标即可运行。