在jboss 6下使用我的log4j

roe*_*oel 7 jboss log4j jboss6.x

我想在JBOSS6上部署我的Web应用程序.应用程序本身可行,但日志记录不行.我使用log4j并在我的战争中添加了一个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.jboss.logging" />
    </exclusions>
</deployment>
Run Code Online (Sandbox Code Playgroud)

在我的log4j.xml中我有

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "dtd/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="LogAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="C:\\logs\\web.log"/>
    <param name="MaxFileSize" value="10000KB"/>
    <param name="MaxBackupIndex" value="10"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%x %-5p [%d{yyyyMMdd HH:mm:ss}] - %c:%L - %m%n"/>
    </layout>
</appender>

<logger name="be.sofico.web">
    <level value="debug" />
    <appender-ref ref="LogAppender" />
</logger>
Run Code Online (Sandbox Code Playgroud)

这一切都适用于tomcat和websphere(当我最后设置classloading parent时)

如何让它在JBOSS 6上运行?

roe*_*oel 12

我解决了我的问题,执行以下操作:将jboss-deployment-structure.xml放在web\META-INF中,文件中包含以下内容

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
  <deployment>
    <exclusions>
        <module name="org.apache.log4j" />
        <module name="org.apache.commons.logging" />
    </exclusions>
  </deployment>
</jboss-deployment-structure>
Run Code Online (Sandbox Code Playgroud)

并将其添加到服务器的启动:-Dorg.jboss.as.logging.per-deployment = false

  • 或者,您可以将系统属性添加到配置xml文件中:<system-properties> <property name ="org.jboss.as.logging.per-deployment"value ="false"/> </ system-properties> (3认同)
  • Standalone.conf可能是把这种变化更合适的地方:http://stackoverflow.com/questions/12670415/log4j-doesnt-log-anything-under-jboss-6-eap (2认同)