Java Jboss 5.1中特定于应用程序的日志记录

Java Jboss 5.1中特定于应用程序的日志记录,java,jboss,log4j,logging,jboss5.x,Java,Jboss,Log4j,Logging,Jboss5.x,我在jbossas的CONFIG目录中添加了以下配置 jboss-log4j.xml文件中的条目 <appender name="YYY" class="org.apache.log4j.FileAppender"> <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"></errorHandler> <param name="Append" value

我在jbossas的CONFIG目录中添加了以下配置

jboss-log4j.xml文件中的条目

<appender name="YYY" class="org.apache.log4j.FileAppender">
      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"></errorHandler>
      <param name="Append" value="false"/>
      <param name="File" value="${jboss.server.home.dir}/log/app1.log"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
      </layout>
   </appender>
  <category name="com.XXX">
  <priority value="INFO" />
     <appender-ref ref="YYY"></appender-ref>
   </category>

我看到在JBoss启动时创建了app1.log。我的应用程序war文件中没有特定于应用程序的log4j.properties或log4j.xml文件。我想要的只是com.XXX中的类应该登录到app1.log。但这并没有发生

如果我的应用程序中没有log4j.properties,我就不能实现它。我的Jboss配置为特定于应用程序的log4j.properties应该被Jboss-log4j.xml文件覆盖


感谢您的任何帮助

您一定可以做到这一点。在
$JBOSS_HOME/server/$PROFILE/conf/JBOSS-log4j.xml
中,进行以下修改:-

 <!-- define the appender --> 
 <appender name="YYY" class="org.apache.log4j.RollingFileAppender">
            <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
            <param name="Append" value="true"/>
            <param name="MaxFileSize" value="500KB"/>
            <param name="MaxBackupIndex" value="1"/>
            <param name="File" value="${jboss.server.log.dir}/app1.log"/>

            <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="%d{MM/dd/yy HH:mm:ss,SSS} %-5p [%c{1}] %m%n"/>
            </layout>
    </appender>

<!-- add the category for your classes with package name com.XXX for ERROR level -->
   <category name="com.XXX">
         <priority value="ERROR"/>
         <appender-ref ref="YYY"/>
    </category>

除了您提到的配置之外,您还需要确保您的应用程序war不包含任何log4j.jar或commons-logging.jar文件

package com.XXX;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;

public class MyServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private static Logger log = Logger.getLogger(MyServlet.class);

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            log.error("My Test Log Message");
}