私はすでに設定しました
<property name="show_sql">false</property>
そして、log4j.propertiesのすべてのメッセージを無効にしました
ただし、Hibernateはすべてのクエリとステートメントを使用してコンソールに書き込みます。
_hibernate.show_sql
_をtrue
に設定すると、休止状態がすべてのSQLステートメントをコンソールに書き込みます。これはログカテゴリ_org.hibernate.SQL
_をデバッグに設定する代わりになります。
したがって、このプロパティをfalse
に設定した場合でも、次のカテゴリが定義されていない(またはコンソールアペンダーを使用するように構成されていない)ことを確認してください。
_log4j.logger.org.hibernate.SQL=DEBUG
_
また、Configuration
オブジェクトをインスタンス化するときに、プログラムで_hibernate.show_sql
_をtrueに設定しないようにしてください。このようなものを狩ります:
_Configuration cfg = new Configuration().configure().
.setProperty("hibernate.show_sql", "true");
_
setProperty(String propertyName, String value)
は、最初のパラメーターとして、_hibernate.show_sql
_だけでなく、構成プロパティのフルネーム、つまり_show_sql
_を受け取ることに注意してください。
こんにちは、log4j.propertiesファイルのこの2行でもこれを解決できることがわかりました。
log4j.logger.org.hibernate = WARN
log4j.logger.org.hibernate = ERROR
このようなものをlog4j.propertiesに追加しますか?
log4j.logger.org.hibernate = WARN
その単純な依存関係をpom.xmlファイルに追加するだけです
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
そしてそれはロギングを無効にし、src/main/resources /log4j.propertiesファイルにputを追加します
log4j.rootLogger=OFF
その後、コンソールにログオンを表示したい場合はいつでも使用できます。次にオンまたはオフにします。
非常に奇妙に思えますが、JUnitテストタスクでEclipseを使用する場合でも、すべての出力はコンソールに送られます(Eclipseコンソールウィンドウ内)。
しかし、ユニットテストにantコマンドを使用すると、コンソールには何も表示されません。
前述のように、最初にhibernate.show_sql
をfalse
に設定する必要があります。これにより、コンソールまたはTomcatstdoutログへの休止状態の出力が防止されます。
ただし、SQL出力を別のログに送信するには、log4j.xmlファイルで次のコードを使用します。
<logger name="org.hibernate.SQL" additivity="false">
<level value="DEBUG" />
<appender-ref ref="hibernate"/>
</logger>
コンソールに対して通常の休止状態のログレベル(警告/エラー)を維持するには、log4j.xmlファイルで次のコードを使用します。
<category name="org.hibernate">
<priority value="WARN" />
</category>