hibernate - 如何使用 jboss-log4j.xml 文件将 Hibernate 记录器语句定向到不同应用程序的不同日志文件中

标签 hibernate logging jboss log4j

我正在使用 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/

相关文章:

Java 7/8 请求参数大小限制

postgresql - 2个Docker容器(JBOSS/DATABASE)之间的网络连接

java - 使用Bean组件处理Camel消息

mysql - JPA/hibernate : Missing table error

java - 仅在第一次尝试时从 App Engine servlet 连接到 Google Cloud MySQL 时出错

asp.net - 登录 .NET

python - 处理Python中的记录器错误

mysql - 尝试使用 MySQL 数据库而不是 H2 来检索进程信息 [在 AS7 中]--jbpm-console 未部署

java - JPA - 无法获取在一对一关系中生成的主键

c# - 包装类似log4net的第三方记录器时要考虑的设计原则