問題タブ [log4j]
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.
java - ログエントリごとのタイムスタンプ付きの log4j
これは私のログ出力です
ログメッセージごとのタイムスタンプが欲しい
ここに私のlog4j設定ファイルがあります
どうすればいいのですか?
exception - Tomcatで捕捉されなかった例外をインターセプトするにはどうすればよいですか?
アプリケーションで発生するキャッチされない例外をインターセプトするためのクリーンな方法を見つけようとしています。
通常のアプリケーションフローをログに記録するようにlog4jを構成し、例外をキャッチしたので、それが処理されます。現在、すべてのエラーレベルのメッセージを受け取り、それらをキューに追加してバッチで電子メールで送信するクラスがあります。
理想的には、キャッチされなかった例外をインターセプトして、同じ「電子メールバッチ」キューに渡すことができる方法があることを望んでいますが、これが不可能な場合は、確かに提案を受け入れます。
私はJBossのLogInterceptorsに精通していますが、このプロジェクトはTomcatを使用しています。私がこれについて行くかもしれない方法はありますか?Tomcatに相当するLogInterceptorはありますか?Tomcatログをカスタムアペンダーにリダイレクトする必要がありますか?(もしそうなら-それについてのヒントはありますか?)他のアイデアはありますか?
これは今では解決された問題だと思ったので、いくつかの集合的な知恵を活用したいと思っています。みなさん、よろしくお願いします。
java - Log4j API の addAppender() メソッドの問題
こんにちは、ログの目的で log4j API を使用しています。次のコードを使用してアペンダーに追加すると、「addAppender() is undefined for the type Logger」というエラーが表示されます
このエラーをデバッグするにはどうすればよいですか?
java - Log4J メッセージのトリミング
メッセージの最初の X 文字 (この例では 5 とします) のみを表示するアペンダーがあります。
私は PatternLayout を使用していますが、メッセージを正しく切り捨てるメッセージを取得できません。
たとえば、私のログメッセージが
速い茶色のキツネ
私はただ見たい:
q
これをパターンで使用すると
%.5m
私は得る
キツネ
これらは最後の 5 文字であるためです。
PattenLayout javadocを調べましたが、何も見つかりませんでした。メッセージ全体を見たくないのは少し奇妙ですが、この特定のアペンダーにとっては理にかなっています。メッセージ全体を別のアペンダーに記録します。可能であれば、カスタム クラスを作成することは避けたいと思います。
xml - Log4j XML構成ファイルを使用してHibernateロギングを構成しますか?
Log4j の XML スタイル構成ファイルを使用して Hibernate のログを構成する方法に関するドキュメントを見つけることができませんでした。
これは可能ですか、それともプロパティ スタイルの構成ファイルを使用して Hibernate のログを制御する必要がありますか?
誰かが情報やドキュメントへのリンクを持っている場合は、それをいただければ幸いです。
編集:
明確にするために、Hibernate を制御する実際の XML 構文の例を探しています。
EDIT2:
これが私のXML構成ファイルにあるものです。
ロギングは正常に機能しますが、現在ログがあふれているため、休止状態のロギングをアプリケーション レベルのロギングとは別の方法で制御する方法を探しています。設定ファイルを使用してこれを行う例を見つけました。XML ファイルでこれを行う方法を知りたいと思っていました。
logging - VBScript に相当する log4j はありますか?
一連の .wsf ファイルと .vbs ファイルをデバッグ ステートメントでインストルメント化する必要があります。出発して自分でロールバックする前に、log4j のようなものは WSF/VBScript 用に存在しますか?
java - ライブラリコードからアプリケーションログにログを記録するための戦略?
私が働いている場所では、WebアプリケーションのロギングにLog4jを使用しています。log4j.jarは、コンテナーレベルではなく、アプリケーションレベルにあります。毎日ローリングファイルアペンダーを使用しています。log4j.propertiesファイルは、アプリのパッケージ名に基づいてアペンダーを定義するため、アプリケーションのパッケージ以下のクラスのみがアプリのログファイルに記録されます。
私のアプリケーションでは、いくつかのサポートクラスを使用してフレームワークを拡張しています。これらのクラスは、私のアプリケーション専用ではなく、最終的には他のアプリケーションで使用するためにjarライブラリになるため、アプリケーションのパッケージには含まれていません。このため、ログステートメントはアプリケーションのアペンダーによって取得されないため、アプリケーションのログファイルにログに記録されません。
jar内のクラスが、クラスを使用してアプリケーションのログファイルにログを記録できるようにしたい。ただし、クラス名に基づいてアプリケーションのlog4jプロパティファイルにアペンダーを作成すると、log4j.propertiesファイルのクラス名が同じであるため、複数のアプリケーションがjarを使用している場合、1つのアプリケーションログファイルのみがjarのロギングステートメント、およびそのjarを使用するすべてのアプリケーションからすべてのロギングステートメントを受信すること。静的なLogger.getLogger()呼び出しを使用してロガーを取得しているため、これが当てはまると思います。
私は最初に、私の恐れが有効かどうかを知りたいと思います。これが、同じまたは異なるコンテナー内の複数のWebアプリケーションが私のjarを同時に使用しているときに実際に起こることであるかどうか。
また、この振る舞いが変化する「境界」があるかどうかも知りたいです。たとえば、log4j.jarがコンテナレベルのjarであるかアプリレベルのjarであるか、または各コンテナが別々のJVMで実行されているかどうかに関係なく、この問題は存在しますか?
最後に、この場合、問題を克服するためにどのような戦略を使用すべきかを知りたいと思います。
前もって感謝します!
java - IntelliJ は log4j 出力からソースコードへのハイパーリンクを作成できますか?
IntelliJ コンソールでは、スタック トレースに、関連するソース ファイルに移動するハイパーリンクが自動的に含まれます。リンクは、各行の末尾に (Log4jLoggerTest.java:25) の形式で表示されます。同様の形式でテキストを出力するように log4j を構成できます。
Eclipse では、コンソールはこのようなテキストを自動的にリンクに変換しました。IntelliJ では、スタック トレースはリンクですが、同じ形式の自分の出力はリンクされていません。IntelliJに同じことをさせる方法はありますか?
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 アノテーションが原因であると主張しています。