【发布时间】:2017-07-12 18:04:42
【问题描述】:
我正在尝试将休眠查询记录到特定于 webapp 的日志文件中。
我可以记录任何消息,但我仍然无法记录休眠查询。
它们被记录在 server.log 中,即使在不同的文件中,但我需要为在同一服务器上运行的每个应用程序创建一个特定于应用程序的日志。
我正在使用log4j 1.2,我能够创建日志文件,记录传递给控制台但休眠查询的所有信息。
在database.properties 文件中,我找到了负责控制台中的日志输出的hibernate.show_sql=true。
这是我指的控制台的日志输出类型:
16:10:35,827 INFO [stdout] (http-localhost-127.0.0.1-8080-1) Hibernate: select [...](这里输出正确的查询通过,准备好的
?声明)
无论如何,我需要的是记录该输出。
我尝试了不同的log4j.xml 设置,但仍然没有成功,它会创建日志文件但不会记录这些输出。
这是当前设置,即在同一个文件中记录所有内容,当我能够记录这些信息时,我将继续分离日志。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
<appender name="mainFileAppender2" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="false" />
<param name="maxFileSize" value="100MB" />
<param name="maxBackupIndex" value="50" />
<param name="File" value="${webapp.root}/WEB-INF/logs/mainCORE.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c{1}:%L %m %n" />
</layout>
</appender>
<appender name="journaldev-hibernate2" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${webapp.root}/WEB-INF/logs/hib-queriesCORE.log" />
<param name="Append" value="false"/><!--value="true" /-->
<param name="ImmediateFlush" value="true" />
<param name="MaxFileSize" value="200MB" />
<param name="MaxBackupIndex" value="50" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %d{Z} [%t] %-5p (%F:%L) - %m%n" />
</layout>
</appender>
<root>
<priority value="debug"></priority>
<!-- <appender-ref ref="stdout"/> -->
<appender-ref ref="mainFileAppender2"/>
</root>
此配置记录除这些输出之外的所有内容。在server.log 中记录如下:
16:10:35,827 INFO [stdout] (http-localhost-127.0.0.1-8080-1) 休眠:选择 [...](查询的其余部分)
【问题讨论】:
标签: java hibernate logging log4j