問題タブ [jboss-logging]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hibernate - SLF4J を使用するために Hibernate 4 でログを構成する方法
Hibernate 3.x は、ロギングにslf4jを使用していました。Hibernate 4.x はjboss-loggingを使用します。Hibernate 4 と SLF4J をログに使用するスタンドアロン アプリケーションを作成しています。
SLF4J にログを記録するように Hibernate を構成するにはどうすればよいですか?
それが不可能な場合、どうすれば Hibernate のログを構成できますか?
ロギングに関するHibernate 4.1のマニュアルセクションは、それが...
完全に古くなっています。Hibernate は 4.0 から JBoss Logging を使用します。これは、このコンテンツを開発者ガイドに移行する際に文書化されます。
... SLF4J について話し続けるので、役に立ちません。入門ガイドも開発者ガイドも、ロギングについてはまったく触れていません。移行ガイドも同様です。
jboss-logging 自体に関するドキュメントを探しましたが、まったく見つかりませんでした。GitHub ページは Silentであり、JBoss のコミュニティプロジェクト ページには jboss-logging のリストさえありません。このプロジェクトのバグトラッカーには、ドキュメントの提供に関連する問題があるのではないかと思いましたが、そうではありません。
幸いなことに、JBoss AS7 などのアプリケーション サーバー内で Hibernate 4 を使用すると、ロギングの大部分が自動的に処理されます。しかし、スタンドアロン アプリケーションでどのように構成できますか?
hibernate - Hibernate 4.x のログ設定
log4j ではなく jboss-logging を使用して、Hibernate 4.x のログ設定について何かを見つけようとしています。誰でも私を助けることができますか?情報ログを無効にする必要があります...
java - Hibernate によってもたらされる JBoss ロギングの使用方法は?
Hibernate を使用しているスタンドアロンの Java アプリケーションを作成しています。Maven がjboss-logging
ライブラリを持ってきてくれました。私はJBossを使用していません。問題は、このライブラリのみでログを記録できますか、それとも のようなログ実装をダウンロードする必要があるかということlog4j
です。
jboss5.x - jboss soa 5.3でスタックトレースログを有効にして削除する方法より詳細なログを有効にして、スタックトレース全体を表示する
jbossで5.1として実行されるjboss5.3soaを使用しています。adminユーザーでteiidクライアントにアクセスしようとすると、「スタックトレース全体を表示するために、より詳細なログを有効にする」というメッセージが表示されます。実際、このエラーが発生するのは他のいくつかの場所です。plsは、スタックトレースを使用して詳細なlogginを有効にすることをmwに通知します。
hibernate - 休止状態のログから無意味なコード (HHH000...) を削除する方法
Hibernate の新しいバージョンを試しています (これまで 3.x を使用していました)。Hibernate は何らかの理由で jboss-logging に切り替えました。これは私が簡単に対処できるものですが、ログをクリーンで読みやすい状態に保つのが好きで、ログ メッセージにコードを挿入します。
ロギング ライブラリとして log4j を使用しており、パターンは次のとおりです。
これは、コードが既に log4j に送信されるメッセージの一部であることを示しています。
ログメッセージからコードを削除する方法はありますか
HHH000412 のようなコードを入れたくないだけです。
log4j - 7.1.1 の最終ログとしての jboss
サブ展開として戦争を持っている耳を持っています。ear ファイルには、ejb-recievers 要素と webscheduler.war だけを持つ jboss-ejb-client.xml ファイルを含む META-INF ディレクトリがあります。この war は commons-logging-api.jar を使用します。このアプリケーションは 7.1.1.final として jboss にデプロイされます。ロギングにApache log4jを使用したい。そこで、ear の meta-inf ディレクトリに jboss-deployment-structure.xml を追加しました。
war の lib ディレクトリに commons-logging.properties ファイルがあり、次の内容が含まれています。
log4j.configuration=/usr/share/wth/jboss/jboss-as-7.1.1/standalone/configuration/log4j.xml
また、log4j-1.2.11.jar を除いて、lib には他のロギング フレームワーク jar がありません (SLF4j など)。ご覧のとおり、log4j.xml は上記のプロパティで記述されたディレクトリにあります。
問題は、jboss を起動したときに、いくつかのアプリケーション ログが log4j.xml (たとえば /a/b/c/srv.log) に記述されているログ ファイルに書き込まれますが、同時にログがデフォルトの srv にも書き込まれることです。 jboss ログ内に直接記録します (jboss/standalone/log/srv.log)。
jboss が独自のロギングを使用せず、提供した log4j 構成を使用するために欠けているものは何ですか。
jboss - JBoss AS6.1 は log4j アペンダーを使用しません - おそらくバグですか?
JBoss 6.1 デプロイメントで log4j アペンダーを使用したいと考えています。これを機能させるのに苦労したので、いくつかのテスト コードを書き、org.apache.log4j.Logger.getLogger(String) がタイプ org.jboss.logmanager.log4j.BridgeLogger のオブジェクトを返すことに注意しました。
したがって、2 つのオプションがあると考えました: (1) getLogger 呼び出しで JBoss BridgeLogger ではなく Apache log4j タイプを返すようにするか、(2) JBoss が何らかのブリッジングを行っていることを受け入れて、log4j アペンダーを使用するようにします。使用する必要があると書いています。
したがって、最初のオプションを試してください: Logger.getLogger() は LogManager.getLogger(String) に委譲します。
RepositorySelector は LogManager では静的であり、次のように設定されます。
しかし、LogManager には setRepositorySelector があるため、JBoss 起動プロセスの何かが setRepositorySelector を呼び出しているという結論に達しました。そのため、テスト ロギング コードから setRepositorySelector を呼び出し (LogManager の静的初期化子と同様に DefaultRepositorySelector に設定)、返されるロガーのタイプを確認しましたが、タイプは org.jboss.logmanager.log4j のままです。ブリッジロガー!!
次に、2 番目のオプションに進みます。私が望むのは、log4j アペンダーを使用できるようにすることだけです。 deploy/jboss-logging.xml ファイルには、コメント アウトされた log4j アペンダーが多数含まれているため、それらをサポートする必要があると思います。したがって、次のように入れます。
その変更により、serverx.log ファイルを取得できないだけでなく、server.log に何も書き込まれません (上記の変更なしで server.log が読み込まれます)。
jboss-deployment-structure.xml と log4j の依存関係の除外について多くのことを読みましたが、それが私の問題に関連しているかどうかを知るために何が議論されているかについて十分に理解していません。関係ないと思います。
関連すると思われるこのパッチをデプロイしようとしました: https://issues.jboss.org/browse/JBAS-8791でも 違いはありませんでした。
誰?
ありがとう、ポール
hibernate - ログバックログが jboss-logging から来る場合、無視されるレベル
私の Web アプリケーション (Tomcat 7 にデプロイ) は、jboss-logging を使用してログを記録する hibernate 4.2 を使用しています。Jboss ロギングは、パス上で slf4j を見つけて使用します。次に、ログを出力する logback-classic があります。すべてがうまく機能しますが、ルート ログ レベルをカスタマイズできません。つまり、
結果:
logback-test 16:47:03.689 [http-bio-8080-exec-5] DEBUG org.jboss.logging - ロギング プロバイダー: org.jboss.logging.Slf4jLoggerProvider
logback-test 16:47:04.244 [http-bio-8080-exec-5] DEBUG ohcfg.annotations.EntityBinder
logback-test 10:00:11.911 [localhost-startStop-1] INFO rest.helpers.MyApplication
jboss (ohcfg.annotations.*) からのメッセージの場合、レベルは info に設定されますが、デバッグ メッセージが出力されます。slf4j を直接使用すると (rest.helpers.*)、デバッグ メッセージが正しく除外され、情報メッセージが出力されます。
ここで、root ログ レベルが「none」に設定されている場合、一部のデバッグ メッセージを許可すると、それらすべてが出力されます。
logback-test 10:22:25.926 [localhost-startStop-1] DEBUG rest.helpers.MyApplication -dMyApplication() 2013 年 8 月 2 日 10:22:26 AM org.glassfish.jersey.server.ApplicationHandler 初期化情報: ジャージー アプリケーションの開始
logback-test 10:22:26.253 [localhost-startStop-1] INFO rest.helpers.MyApplication
logback-test 10:22:42.995 [http-bio-8080-exec-5] DEBUG org.jboss.logging - ロギング プロバイダー: org.jboss.logging.Slf4jLoggerProvider
logback-test 10:22:43.025 [http-bio-8080-exec-5] DEBUG org.hibernate.type.BasicTypeRegistry
org.hibernate デバッグ メッセージを許可していません。なぜ表示されたのですか? 正しい構成ファイルが取得されていることを確認しました(ログ形式を変更することにより)
これを理解するのを手伝ってください。
私のクラスパスには
- slf4j-api 1.6.1
- jul-to-slf4j 1.6.1
- log4j-over-slf4j 1.6.1
- ログバックコア 1.0.33
- logback クラシック 1.0.33
- jboss-logging 3.1.0.GA。
logback.xml と logback-test.xml の両方がクラスパスにあります。logback.xml には含まれて<root level="warn">
おり、それ以上の特殊化はありません
spring - Tomcat で JPA、Hibernate、および Spring を使用してクラスローダーのリークを回避する方法
Open J2EE Web テンプレートは、Tomcat7 サーブレット コンテナーで実行される wicket - Spring と Hibernate を備えた JPA のショーケース アプリケーションです。その Maven ビルド スクリプトは、コンポーネントを標準的な方法で使用しているように見えます。
ただし、Tomcat からアンデプロイすると、アプリケーション クラスローダーのメモリ リークの影響を受けます。
Tomcat の「Find Leaks」ボタンは、リークを確認します。VM オプション -XX:+HeapDumpOnOutOfMemoryError を使用して Tomcat にデプロイすると、生成されたヒープ ダンプを Eclipse メモリ アナライザー ツール (MAT) で分析できます。MAT は、java.util.logging.Level$KnownLevel
ガベージ コレクションを妨げている原因としてクラスを識別します。
コンストラクターをデバッグするとKnownLevel
、次のスタック トレースが明らかになります。
java.util.logging.Level$KnownLevel.add(Level.java:477) java.util.logging.Level.(Level.java:212) java.util.logging.Level.(Level.java:190) org. jboss.logging.JDKLevel.(JDKLevel.java:35) org.jboss.logging.JDKLevel.(JDKLevel.java:42) org.jboss.logging.JDKLogger.translate(JDKLogger.java:78) org.jboss.logging. JDKLogger.isEnabled(JDKLogger.java:85) org.jboss.logging.Logger.debugf(Logger.java:563) org.jboss.logging.LoggerProviders.find(LoggerProviders.java:37) org.jboss.logging.LoggerProviders. (LoggerProviders.java:32) org.jboss.logging.Logger.getLogger(Logger.java:2163) org.jboss.logging.Logger.getMessageLogger(Logger.java:2259) org.jboss.logging.Logger.getMessageLogger(Logger) .java:2214) org.hibernate.ejb.Ejb3Configuration.(Ejb3Configuration.java:144) org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:74) org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:268) org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310) org.springframework.beans. factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory. java:519) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) org .springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) org.springframework.beans.factory.support.DefaultListableBeanFactory .preInstantiateSingletons(DefaultListableBeanFactory.java:567) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385) org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284) org.springframework.web.context.ContextLoaderListener. contextInitialized(ContextLoaderListener.java:111) org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
クラスローダーのリーク: 恐ろしい "java.lang.OutOfMemoryError: PermGen space" 例外を正しく理解していれば、このクラスローダーのリークは予想されます。
これを回避するために推奨される方法は何ですか、または Tomcat での代替の Spring/JPA テンプレート Web アプリケーションは何ですか?