Webアプリケーション固有のログファイルにhibernateクエリを記録しようとしています。 私は任意のメッセージを記録できますが、私はまだハイバネートクエリをログに記録できません。
これらのファイルは別ファイルであってもserver.log
の中に記録されていますが、同じサーバー上で実行されている各アプリケーションごとにアプリ固有のログが必要です。
私はlog4j 1.2
を使用しています。ログファイルを作成して、コンソールに渡されたすべての情報をログに記録できますが、休止状態のクエリはログに記録できます。
database.properties
ファイルの中に、コンソールのログ出力を担当するhibernate.show_sql=true
が見つかりました。はHibernateクエリをログに記録できませんlog4j
16:10:35827 INFO [標準出力](HTTP-localhostを-127.0.0.1-8080-1)Hibernateは:選択して[...](ここで これは、私が参照して、コンソールのログ出力の一種であります正しい文が出力され、準備された文の
?
が付きます)
とにかく、出力を記録する必要があります。 異なる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:35827 INFO [標準出力](HTTP-localhostを-127.0.0.1-8080-1)休止状態:選択して[...](クエリの残りの部分)
このようにして解決しました。 –