問題タブ [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 投票する
1 に答える
1293 参照

java - GWT共有コードにログインするために使用できるロギングは何ですか?

GWTプロジェクトには、次の3種類のコードがあります。

  1. クライアントコード(GWTクライアント/ javascript)
  2. サーバーコード(サーブレットコンテナ/ java)
  3. 共有コード(GWTクライアントとサーブレットコンテナ/ javascriptとjava)

タイプごとに使用可能なロギングフレームワーク:

  1. クライアント-gwt-log
  2. サーバー-slf4j
  3. 共有-???

ロギングを含む可能性のある共有コードを1回書き込みたいのですが。

これに対する解決策はありますか?

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

log4j - 抽象クラス/継承のためにslf4j(log4jを使用)ロガーを適切に初期化する方法

私のプロジェクトでは、トップレベルの抽象クラスを持っていますFrameProducer。このレベルで slf4j ロガーを追加したので、すべての継承クラスがすでにそれを持っています。ここにコード:

と の 2 つの継承クラスもありCameraFrameGrabberますGrayscaleFilter。それでも、メソッドfireEvent()が呼び出されているとき、CameraFrameGrabberまたはGrayscaleFilterメッセージがFrameProducerレベルでログに記録されているとき。わかりやすくするために、ログを次に示します。

FrameProducerクラス階層の最も特殊化されたレベルですべてがログに記録されるようにロガーを初期化することは可能ですか?

助けてくれてありがとう。


編集:私の log4j.properties は次のようになります。

0 投票する
11 に答える
76226 参照

java - 毎回 LoggerFactory.getLogger(...) を呼び出すことが推奨されないのはなぜですか?

SFL4J ロギングの推奨パターンは次のとおりであることを指摘する、大量の投稿や文書 (このサイトおよび他の場所) を読みました。

私の上司は、ラッパーを使用してログ呼び出しをインターセプトし、すべてのクラスでロガーを宣言する定型コードを避けることを好みます。

単純に次のように使用します。

ログを記録するたびにロガーをインスタンス化するのは多少コストがかかると思いますが、その仮定を裏付けるドキュメントを見つけることができませんでした。それに加えて、彼は確かにフレームワーク (LogBack または Log4J をまだ決定中です) がロガーを「キャッシュ」し、いずれにせよサーバーが容量をはるかに下回る状態で実行されているため、問題ではないと述べています。

このアプローチの潜在的な問題を指摘する助けはありますか?

0 投票する
1 に答える
3393 参照

java - Jettyのログを印刷する方法

私のプロジェクトはWicket+Spring + JPA/Hibernateで実行されます。次のコマンドを使用して実行すると、次のようになります。

mvn jetty:run

コードで作成したログをjettyで印刷したいのですが。たとえば、次のDAOを実装しました。

Jettyにこの情報をコマンドラインウィンドウにリアルタイムで出力させるにはどうすればよいですか?

pom.xmlには、次の依存関係があります。

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

log4j - SLF4j/log4j を使用してログを .log ファイルに保存する

私は SLF4J を使用しており、要件に従って、ログを .log ファイルに保存する必要があります。しかし、プログラムを実行すると、ログはログ ファイルに書き込まれません。

クラス :

log4j.properties

コンソールに情報、警告、エラーが表示されますが、デバッグ値は表示されません..!!

ログをcheckLog.logファイルに保存するのを手伝ってくれる人はいますか??

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

log4j - プロジェクト固有のログ情報をログファイルにロードする

私はEclipseを使用しており、Webプロジェクトを作成しています。また、ログファイルにログを保存するためにSLF4Jを使用しています。

log4j.propertiesファイルをフォルダに入れていWEB-INF/classesます。

ログインページにアクセスすると、関連するすべてのログとデバッグステートメントログがログファイルに読み込まれますが、特定のログ(つまり、プロジェクト固有のログ)を他のログではなくログファイルに読み込む必要があります。

ログファイルで私は見ることができます:

特定のプロジェクト関連のログをログファイルに保存する方法を見つけるのを手伝ってくれる人はいますか?

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

spring - 注入されるプロトタイプ Bean で親 Bean を取得する

次のような Bean と SubBean が必要です。

私が達成したいトリックは、SubBean が注入された Bean への参照を自動的に取得することです。サブビーンのスコープはプロトタイプであるため、サブビーンの注入を希望するすべての親に新しいインスタンスとして注入されます。

私の大きなアイデアは、このパターンを利用して、通常の Bean に注入できる LoggerBean を作成することです。サブビーンは、SLF4J ロガーと同じように機能する必要があります。

では、これを機能させる魔法を知っている人はいますか? :)


編集:カスタム BeanPostProcessor でこれを行うソリューションを見つけました:

インターフェイスは次のとおりです。

そして、ここでそれを使用する Bean:

ここでは、完全に機能する通常の Bean を使用したテストを示します。

ただし、@Configurable を介して注入された依存関係を取得する通常のクラスで同じものを使用すると、テストは失敗します。

だから、これは私に別の質問をさせたようです:なぜ私のカスタム BeanPostProcessor は @Configurable クラスで実行されないのですか? 結局、AspectJに頼らなければならないかもしれません...


編集:ステータスを更新するだけです。これはオーバーエンジニアリングであるため、結局これを実装しませんでした...

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

logging - Jetty6 slf4jロギング-カスタムログフォーマッタを機能させる方法は?

私はjetty6をSLF4JとJavaロギングで使用しており、カスタムログフォーマッターを追加しようとしていますが、何を試しても機能しないようです。

私は次のようなフォーマッターを持っています:

これをjettyロギングのデフォルトとして使用したいので、${jetty.home}/resources/logging.propertiesファイルを作成しました。

DeadSimpleFormatterクラスを含むjarファイルlogging.jarを作成します。このjarファイルを${jetty.home}/ lib/extに入れました。

私は桟橋を始めます:

作成中の出力ファイルを見ることができます。これは、プロパティファイルで定義されている制限とカウントのルールに従います。しかし、それは私のフォーマッターを使用しません-それはデフォルトのXmlFormatterに戻ります。stdoutまたはstderrからのエラーは表示されません。

logging.propertiesファイルを変更して、フォーマッターを次のように設定すると、次のようになります。

...その後は機能します-ログファイルは通常のSimpleFormatterを使用して書き出されます。したがって、私のプロパティは問題なく、slfjjarなどはすべて正しいと確信しています。Jettyが私のDeadSimpleFormatterを気に入らないというだけです。

何もないので-文字通り!--DeadSimpleFormatterでは、これはクラスの読み込みの問題である可能性があると思います。次のようにjarファイルを明示的に追加してみました。

...しかし喜びはありません。

私はメインメソッドをDeadSimpleFormatterに入れ、jarを実行できることを確認しました。

...これは機能するので、私の瓶は大丈夫だと確信しています。

ここで何が起こっているのか誰かが知っていますか?私は考えられるすべての組み合わせを試しました。

ありがとう、アラステア

0 投票する
1 に答える
5378 参照

java - Log4j を LogBack に置き換える際の問題、log4j-over-slf4j.jar の欠点

そのため、いくつかのサービスを移植して、log4j で Logback を使用し、log4j-over-slf4j jar を使用して、従来の依存関係のために log4j を偽装しています。唯一の問題は、log4j-over-slf4j が log4j のクラスの多くを実装していないことです。そのため、依存する jar から例外が見つからないクラスがいくつか見られます。人々はこれをどのように回避しましたか?log4j-over-slf4j jar の代わりに nlog4j をクラスパスに入れるだけで十分ですか? この最後のアイデアはまだテストしていませんが、明日実行する予定です。

参照:

0 投票する
1 に答える
634 参照

logging - log4j (または他の Java ロガー) アペンダーは、リクエスト コンテキスト オブジェクトを受け入れたり、アクセスしたりできますか?

現在、Restlet を使用して Web サービスを作成しており、log4j の前に slf4j でログを記録しています。現在、ファイルにログを記録するための標準の log4j アペンダーを用意しています。私がやろうとしていたことは、カスタム Appender を使用して、HTTP 応答にログ出力を含めることです。

私が見ている問題は、デフォルトではアペンダーが作成中のリクエストのコンテキストにアクセスできないことです。理論的には、非同期アペンダーが実行される前にリクエストが終了する可能性があるため、これは理にかなっています。おそらく Appender を同期させ、ログ呼び出しで Response オブジェクトを渡すことによって、これが可能かどうかについてはまだ興味があります。log4j がこれをサポートする方法が見つかりません。logback のような別のフレームワークはありますか? パフォーマンスへの影響があるため、必ずしもこの方法を最終的に使用するわけではありませんが、それでも興味があります。

参考までに、私の現在の回避策は、応答にエントリを追加し、標準のログ記録のために slf4j メソッドを呼び出すカスタム ログ メソッドです。これの欠点は、カスタム メソッドを使用する必要があることです。また、自分が制御するコードのログ エントリしか取得しません (使用しているライブラリは、Appenders のみを使用しており、Response にログが記録されません)。