7

我想在 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>

在我的 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>

这一切都适用于tomcat和websphere(当我最后设置类加载父级时)

我怎样才能让它在 JBOSS 6 上工作?

4

3 回答 3

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>

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

于 2012-08-29T08:51:30.287 回答
0

为了在类路径中正确设置我的 log4j,我做了两件事:

1)我将log4j的名称设置为这样使用

-Dlog4j.configuration=fox-log4j.xml

这个必须在CLASSPATH

2)我明确调用日志管理器,否则 jboss log4j 将无法工作

这在我的 run.conf 中给出:

#parameter used by the JVM and call later in the log4j.xml
LOG_FOLDER=$DIRNAME/../server/default/log
#jvm options
JAVA_OPTS="-Xms256m -Xmx4096m -XX:MaxPermSize=1024m -Dlog4j.configuration=fox-log4j.xml \
-Dfile.encoding=UTF-8 -Dfile.io.encoding=UTF-8 -DjavaEncoding=UTF-8 -Djboss.platform.mbeanserver \
-Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl \
-Djava.util.logging.manager=org.jboss.logmanager.LogManager \
-Dorg.jboss.logging.Logger.pluginClass=org.jboss.logging.logmanager.LoggerPluginImpl \
-DLOG_FOLDER=$LOG_FOLDER"

现在是我的一部分 log4j :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

 <appender name="FOX_LOG" class="org.apache.log4j.RollingFileAppender">
  <param name="Threshold" value="DEBUG"/>
  <param name="Append" value="true"/>
  <param name="MaxFileSize" value="25MB"/>
  <param name="MaxBackupIndex" value="5"/>
  <param name="File" value="${LOG_FOLDER}/fox.log"/>
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%d{ISO8601} %-15x %t %-5p %-50.50c{1} - %m%n"/>
  </layout>
 </appender>

 <category name="com.mycompany" additivity="true">
    <priority value="DEBUG"/>
    <appender-ref ref="FOX_LOG"/>
 </category>

  <root>
    <priority value="INFO"/>
    <appender-ref ref="FILE"/>
 </root>
</log4j:configuration>

希望这会有所帮助。问候

于 2012-08-24T23:27:31.120 回答
-2

这意味着它没有加载您的 log4j.xml。xml 文件位置有问题或类加载器找到此 log4j.xml 时出现问题。

于 2013-05-14T20:29:43.207 回答