web-dev-qa-db-ja.com

Hibernateによるコンソールへのログの書き込みを停止できません(log4j.propertiesは問題ありません)

私はすでに設定しました

<property name="show_sql">false</property>

そして、log4j.propertiesのすべてのメッセージを無効にしました

ただし、Hibernateはすべてのクエリとステートメントを使用してコンソールに書き込みます。

21
dmitrynikolaev

_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_を受け取ることに注意してください。

23
Pascal Thivent

こんにちは、log4j.propertiesファイルのこの2行でもこれを解決できることがわかりました。

log4j.logger.org.hibernate = WARN
log4j.logger.org.hibernate = ERROR
2
MadMad666

このようなものをlog4j.propertiesに追加しますか?

log4j.logger.org.hibernate = WARN
1
Droo

その単純な依存関係をpom.xmlファイルに追加するだけです

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>

そしてそれはロギングを無効にし、src/main/resources /log4j.propertiesファイルにputを追加します

log4j.rootLogger=OFF

その後、コンソールにログオンを表示したい場合はいつでも使用できます。次にオンまたはオフにします。

0
karan

非常に奇妙に思えますが、JUnitテストタスクでEclipseを使用する場合でも、すべての出力はコンソールに送られます(Eclipseコンソールウィンドウ内)。

しかし、ユニットテストにantコマンドを使用すると、コンソールには何も表示されません。

0
dmitrynikolaev

前述のように、最初にhibernate.show_sqlfalseに設定する必要があります。これにより、コンソールまたは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>
0
cgalev