【发布时间】:2018-04-26 05:25:55
【问题描述】:
我使用 Hibernate 5.2.10.Final、log4j 1.2.17(来自here)、Weblogic 12.2.1。这就是我的log4j.xml 的样子:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC
"-//APACHE//DTD LOG4J 1.2//EN" "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%5p] %d{yyyy-MM-dd HH:mm:ss} [%x] [%C.%M] - %m %n" />
</layout>
</appender>
<appender name="logFile" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="../logs/mylog.log"/>
<param name="MaxFileSize" value="100MB"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[%5p] %d{yyyy-MM-dd HH:mm:ss} - %m %n" />
</layout>
</appender>
<logger name="interceptorLog" additivity="false">
<level value="INFO" />
<appender-ref ref="logFile" />
</logger>
<root>
<priority value="ALL" />
<appender-ref ref="logFile"/>
</root>
</log4j:configuration>
现在,我自己的所有日志都转到mylog.log - 这很好。当发生一些 Hibernate 异常时,这些日志会转到 <weblogic-domain>/servers/AdminServer/MyApplication.log,我希望它们转到与我的日志相同的文件。
此时我基本上尝试了所有方法:迁移到 log4j2(遵循this),将休眠记录器/类别添加到我的log4j.xml,例如:
<logger name="org.hibernate">
<level value="ALL" />
<appender-ref ref="logFile"/>
</logger>
根本没有任何进展,无论我做出什么改变,都像是没有效果(当然,除非我犯了一些错误)。我开始认为 Weblogic 是幕后黑手,我猜 Hibernate 日志转到错误输出,Weblogic 正在将它们重定向到他的文件,不知道为什么我不能强制它们登录到mylog.log。
我最关心的是异常,我希望将它们与我的所有自定义日志一起查看,而不是隐藏在 Weblogic 域文件中的某个位置。
【问题讨论】:
标签: hibernate logging log4j log4j2 weblogic12c