タイトルで述べたように、log4jを使用せずにHibernateコンソールの出力を停止したいと思います。log4jを使おうとしましたが、どこにも行きません。私が欲しいのは、コンソールのINFO出力を停止することです。また、log4jを使用している場合は、.propertiesまたは.xmlファイルなしでそれを行うことができます。ソースで設定を行うだけです。tnx
3 に答える
あなたはこれを試すことができます:
Logger log = Logger.getLogger("org.hibernate");
log.setLevel(Level.WARNING);
動作するはずです。セッションを開く前に電話してください。
構成で許可されていない限り、Hibernateがコンソールにログオンしないことを証明できます。では、どのバージョンのHibernateを使用していますか?ログバックエンドとしてLOG4Jを使用していない場合、どのSLF4Jバインディングを使用していますか?そのための構成ファイルはありますか?
または、SQLのエコーをオンにしてstdoutを使用しましたhibernate.cfg.xml
か?:
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
あなたは読者を少し助ける必要があります、私たち全員が水晶玉を持っているわけではありません:)より多くの資料を提供してください。
更新: OPは、ログメッセージをコンソールに出力するために正確に使用されるクラスパスにslf4-simple
バインディングを持っていたようです。INFO
Simple
すべてのイベントをに出力する実装のバインディングSystem.err
。レベルINFO以上のメッセージのみが出力されます。このバインディングは、小さなアプリケーションのコンテキストで役立つ場合があります。
slf4-simple
別のバインディング(クラスパスに複数のバインディングがないようにする必要があります)を適切な構成に置き換えると、Hibernateが無音になります。
解決策は、slf4j-apiを使用している場合、クラスパスにslf4j-log4j12-1.5.2.jarを追加するように見えます。これは、ログを無効にするためにlog4jに追加された構成以外です。
このリンクは役立つはずです。
http://ayushsuman.blogspot.com/2010/07/turning-off-hibernate-logging-console.html
他の解決策を以下から確認することもできます:
Hibernateによるコンソールへのログの書き込みを停止できません(log4j.propertiesは問題ありません)