問題タブ [slf4j]

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.

0 投票する
8 に答える
12849 参照

java - Java でのロギングはどうなっていますか?

他のパッケージではなく、次のパッケージのいずれかを使用するのはなぜですか?

  • Java ロギング
  • コモンズ・ロギング
  • Log4j
  • SLF4j
  • ログバック
0 投票する
6 に答える
39288 参照

java - slf4j および log4j を使用した Hibernate 3.4

どうやら slf4j を使用している Hibernate 3.2 から 3.4 にアップグレードしようとしています。私たちのプロジェクトは現在 log4j を使用しています。したがって、slf4j-log4j12 でラップされた実装を使用する必要があると想定しています。

Maven slf4j の依存関係は次のとおりです。

log4j の依存関係は次のとおりです。

slf4j-log4j12 と log4j の両方が最新バージョンを参照しています (Maven リポジトリで見つけることができます)。アプリを実行すると、Hibernate がログに失敗します。

私は何が欠けていますか?

編集 1: pom.xml から log4j 依存関係を削除すると、エラーが発生します。

編集 2: このブログでは、この問題は、間違ったバージョンの slf4j-api.jar で出荷されている hibernate アノテーションが原因であると主張しています。

0 投票する
6 に答える
4399 参照

logging - 中央ロギング サーバーをセットアップし、ロギング イベントをテストと本番から分割する方法は?

次のように、中央ログ (またはおそらく 2 つ、それぞれがテストまたは本番専用) サーバーをセットアップするのに最適な方法は次のとおりです。

コードが条件文を参照していることを心配する必要はありません。これにより、製品エラー以外のエラーが製品エラー log4j バスに誤って記録される可能性があります。つまり、次のようなコードは必要ありません。

サーバー名などを密結合して参照し、コードは prod と test の 2 つのサーバー名のいずれかでしか機能しないため、これは望ましくありません。また、開発者がこれを正しく設定せず、ロギング リポジトリを汚染する可能性があるため、これを設定で宣言的に設定することもできません。助言がありますか?

いくつかの詳細、一部は考慮に入れませんが、とにかくそれらをリストします。

  • 現在、 Oracle Application Server 10.1.3.4 で実行され、将来は Oracle WebLogicで実行される Web アプリケーションのみ
  • http://timarcher.com/?q=node/10 ...例外として、中央サーバーはテキスト ファイルをログに記録し、メール送信は行いません!
  • log4j を使用し、slf4j 経由でラップされる可能性があります (slf4j について言及するのはちょっと不謹慎なので、ほとんど無視してください..)
0 投票する
7 に答える
66113 参照

java - java.util.loggingをlog4jに送信する方法は?

log4jに対してすべてのロギングを行う既存のアプリケーションがあります。log4jを使用するか、Commons Loggingに対してログを記録する他の多くのライブラリを使用します。これにより、環境内でlog4jが使用されることになります。依存関係の1つは、slf4jに対してもログを記録します。これは、最終的にはlog4jにも委任されるため、正常に機能します。

ここで、キャッシュのニーズに応じて、このアプリケーションにehcacheを追加したいと思います。以前のバージョンのehcacheはcommons-loggingを使用していましたが、これはこのシナリオでは完全に機能していましたが、バージョン1.6-beta1では、commons-loggingへの依存関係が削除され、代わりにjava.util.loggingに置き換えられました。

java.util.loggingで利用できる組み込みのJDKロギングにあまり詳しくない場合、log4jに対してJULに送信されるログメッセージをログに記録する簡単な方法があります。これにより、既存の構成を使用して、今後のロギングを設定できます。 ehcacheから?

JULのjavadocsを見ると、LogManager使用する実装を変更するために一連の環境変数を設定し、おそらくそれを使用しLoggerてJULLoggerクラスでlog4jをラップできるようです。これは正しいアプローチですか?

皮肉なことに、ライブラリで組み込みのJDKロギングを使用すると、他の地域(ほとんど)が代わりにサードパーティのライブラリを使用している場合に、このような頭痛の種が発生します。

0 投票する
3 に答える
9347 参照

java - JavaのSimpleLoggingFacadeとApacheCommonsLoggingの違い

Simple Logging FacadeforJavaとApacheCommonsLogging違いは何ですか?

0 投票する
2 に答える
2556 参照

java - Maven が hibernate-c3p0 の slf4j への依存関係を解決しない

hibernate-c3p0Mavenのpom.xmlファイルに含めると、ランタイムNoClassDefFoundErrorが見つからないため、ランタイムが取得されますorg.slf4j.impl.StaticLoggerBinder。Maven がこの依存関係を解決するというのが私の印象でした。c3p0 が slf4j を必要とする場合、slf4j がダウンロードされて含まれます。

私のpom.xmlファイルには次のものがあります:

0 投票する
6 に答える
6176 参照

java - ロギングフレームワークを追加のレイヤーでラップする価値はありますか?

私は現在、中規模から大規模のJavaコードベースでロギングメカニズムをアップグレードすることを検討しています。メッセージは現在、Debugクラスの静的メソッドを使用してログに記録されます。これからSLF4Jやcommons-loggingなどに切り替えることをお勧めします。

アプリケーションアーキテクトは、SLF4Jへの依存関係をカプセル化することを好みます(おそらく、前述のDebugクラスにラップすることによって)。これにより、将来、ロギングの実装を簡単に変更できるようになります。

SLF4Jはすでに具体的なロギングの実装を抽象化しているため、これは私にはやり過ぎのように思えます。

SLF4Jのようなサードパーティのロギング抽象化をの自家製の抽象化でラップする価値はありますか?

0 投票する
5 に答える
8130 参照

java - JSP で SLF4J ロガーを使用する方法

私は、中規模のアプリケーションのロギングを、カスタム ソリューションからより標準的なソリューションに移行しようとしています。Logback と SLF4J を使用することに決め、ほとんどの Java コードを正常に移行しました。ただし、ロギングに単に System.out を使用する JSP がかなりあります。私は JSP をあまり扱ったことがなく、疑問に思い始めました。JSP で適切なロギングをどのように使用すればよいのでしょうか。

これが最初に頭に浮かんだことですが、いくつかの点で間違っているようです。

  • 非常に冗長で、既存の JSP を変換するには多くの作業が必要です。
  • ページがレンダリングされるたびに LoggerFactory.getLogger() が呼び出されます (logger標準の Java クラスの静的フィールドとは対照的です)。
  • ロガーの名前も、このようにあまり単純ではないものになると思います

JSP にログインするための標準やベスト プラクティスなどはありますか?

また、IIRC には、Log4J 用のある種の taglib がありました。SLF4J (または Logback) に似たものはありますか?

0 投票する
2 に答える
509 参照

java - ロガーはどのアクセスレベルに設定する必要がありますか?

私はSLF4Jを使用しており、その下にLog4Jがあります。ロガーをどのアクセス レベルに設定する必要がありますか?

0 投票する
4 に答える
10192 参照

java - サーブレットで Hibernate を実行すると NoClassDefFoundError: org/slf4j/LoggerFactory が発生する

Hibernate (V3.3.2) を使用して HSQLDB からデータを読み取る Java (6) アプリケーションがあり、これを Eclipse (V3.5.1) でビルドおよびデバッグ/実行しましたが、正常に動作します。

次に、GWT (V1.7) サーブレット Web アプリを作成し、休止状態のクラスをそこにコピーして、同じユーザー ライブラリの依存関係を追加しました。ただし、サーブレットを実行して、コードを呼び出す URL にアクセスしようとすると、次のようになります。

DAOSession.java:40 は次のとおりです。

このエラーをグーグルで検索すると、クラスパスから slf4j-api.jar が見つからないことが示唆されますが、デバッグ プロパティのコマンド ラインを見ると、この jar がそこに表示されます。

jar を開くと、そこに LoggerFactory クラスが表示されます。

クラスローダーで見つからない理由はありますか?

編集 1:コードから org.slf4j.LoggerFactory にアクセスしようとすると、Eclipse は正常にコンパイルされますが、実行時に同じエラーが発生します。

編集 2:同じコードを呼び出して実行するメインの Test クラスを追加すると、動作します。したがって、このクラスパスの問題はサーブレットに固有のようです。

ありがとう、ジョン