Java Jboss 5.1中特定于应用程序的日志记录
我在jbossas的CONFIG目录中添加了以下配置 jboss-log4j.xml文件中的条目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
<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");
}