Logging Log4j:每个war一个日志文件

Logging Log4j:每个war一个日志文件,logging,log4j,classloader,war,Logging,Log4j,Classloader,War,是否可以根据war文件设置单个日志文件?我们有两个应用程序“战争”,每个都与特定的功能有关,并由不同的团队管理。我们希望将单个war的日志输出到它自己的日志文件中。请注意,这两个war都使用一些通用代码,因此我们可以在包级别上使用。欢迎您的任何意见 谢谢这是一个适用于JBoss的。如果战争使用不同的类装入器,它应该适用于其他容器 HTH如果要在JBoss中部署应用程序,可以为设置: 对于log4j2(log4j版本2.x),有一个名为的有用查找,可用于指定日志文件名,例如: <Roll

是否可以根据war文件设置单个日志文件?我们有两个应用程序“战争”,每个都与特定的功能有关,并由不同的团队管理。我们希望将单个war的日志输出到它自己的日志文件中。请注意,这两个war都使用一些通用代码,因此我们可以在包级别上使用。欢迎您的任何意见

谢谢

这是一个适用于JBoss的。如果战争使用不同的类装入器,它应该适用于其他容器


HTH

如果要在JBoss中部署应用程序,可以为
设置


对于log4j2(log4j版本2.x),有一个名为的有用查找,可用于指定日志文件名,例如:

<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文件都有自己的日志文件。

我认为这就足够了,TCLFilter只查找子字符串。如果您有一个“版本化”的war app1-x.y.z.war,或者您是从一个名为app1:war的IDE部署的,这可能会有所帮助。
<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>