我正在使用 JBOSS 4.2.2 服务器来部署多个 Web 应用程序。每个应用程序都使用 Hibernate,并且每个应用程序都有单独的日志文件和单独的附加程序。现在,对于 Hibernate,一个应用程序的日志记录语句应该放入该特定应用程序的日志文件中。有谁知道如何配置 log4j.xml 文件来实现此目的?
最佳答案
在 JBoss 中,您可以按照描述使用 TCL 过滤器 here 。只需将过滤器添加到您想要操作的配置部分即可。
示例(稍微改编自上述源代码,请查看将应用程序部署为 .war 文件部分):
<appender name="App1Log" class="org.apache.log4j.FileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" />
<param name="Append" value="false"/>
<param name="File" value="${jboss.server.log.dir}/app1.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} %-5p [%8.8t][%20.20c] %m%n"/>
</layout>
<filter class="org.jboss.logging.filter.TCLFilter">
<param name="AcceptOnMatch" value="true"/>
<param name="DeployURL" value="app1-exp.war"/>
</filter>
</appender>
关于hibernate - 如何使用 jboss-log4j.xml 文件将 Hibernate 记录器语句定向到不同应用程序的不同日志文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/547242/