Вы определенно можете сделать это. В $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>
Вам даже не нужно перезапускать экземпляр JBoss. Обратите внимание, что $ jboss.server.log.dir ($ JBOSS_HOME / server / $ PROFILE / log) передается в качестве аргумента JVM в run.sh или в качестве параметра командной строки для run.sh.
Если вы не видите никаких выходных данных, то, вероятно, ваше приложение неправильно создало log4j, или имя вашего пакета отличается, либо вы обращаетесь к неправильному приложению, либо просто не выполняете инструкции log при выполнении кода. Убедитесь, что у вашего класса есть log4j, созданный правильно и под правильным именем пакета. Например:
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");
}