是否可以为每个war文件设置单独的日志文件?我们有两个应用程序“war”,每个都属于一个特定的功能,并由不同的团队管理。我们希望在自己的日志文件中输出单独的war日志。请注意,这两个war使用一些公共代码,因此我们可以在包级别进行划分。欢迎您提供任何输入。谢谢你
yacmzcpb1#
如果您在JBoss中部署应用程序,则可以为jboss-log4j.xml中声明的<appender>设置一个<filter>。
jboss-log4j.xml
<appender>
<filter>
<appender name="App1Log" 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 %-5p %c{1} %m%n"/> </layout> <filter class="org.jboss.logging.filter.TCLFilter"> <param name="AcceptOnMatch" value="true"/> <!-- value="app1.war" is incorrect. --> <param name="DeployURL" value="app1-exp.war"/> </filter>
rnmwe5a22#
对于log4j2(log4j版本2.x),有一个名为web:contextPath的有用查找,它可用于指定日志文件名,例如:
<RollingFile name="RollingFile" fileName="${sys:catalina.base}/logs/${web:contextPath}.log" filePattern="${sys:catalina.base}/logs/$${date:yyyy-MM}/${web:contextPath}-%d{MM-dd-yyyy}-%i.log.gz"> ... </RollingFile>
所以每个war文件都有自己的日志文件。
mzmfm0qo3#
这是一个适用于JBoss的log4j solution,它应该适用于其他容器,只要这些容器使用不同的类加载器。
3条答案
按热度按时间yacmzcpb1#
如果您在JBoss中部署应用程序,则可以为
jboss-log4j.xml
中声明的<appender>
设置一个<filter>
。rnmwe5a22#
对于log4j2(log4j版本2.x),有一个名为web:contextPath的有用查找,它可用于指定日志文件名,例如:
所以每个war文件都有自己的日志文件。
mzmfm0qo3#
这是一个适用于JBoss的log4j solution,它应该适用于其他容器,只要这些容器使用不同的类加载器。