問題タブ [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.

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

java - 別の言語で逆シリアル化する

log4j ネットワーク アダプタは、イベントをシリアル化された Java オブジェクトとして送信します。このオブジェクトをキャプチャして、別の言語 (python) でデシリアライズできるようにしたいと考えています。これは可能ですか?

ネットワーク キャプチャは簡単です。それは単なるTCPソケットであり、ストリームを読み込んでいます。難点はデシリアライズ部分

0 投票する
7 に答える
79067 参照

java - Java ロギングと Log4J

log4j ライブラリを Java 5 プロジェクトに追加してログに記録するだけの価値はありますか? それとも、標準の util.logging 機能でも同じように機能しますか?

どう思いますか?

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

java - log4j アダプターのカスタマイズ

ここに投稿した問題を解決するために、独自のカスタム log4j (ネットワーク) アダプターを構築したいと考えています。

私はlog4jのドキュメントを見てきましたが、開発者がどこでこれを行うかを調べているかどうかはわかりません。

誰かが私を正しい方向に向けて始めることができますか?

0 投票する
9 に答える
19409 参照

java - Log4Jロガーを一時的なものとして宣言する必要がありますか?

Log4JでJava1.4を使用しています。

私のコードの中には、値オブジェクト(POJO)のシリアル化と逆シリアル化が含まれているものがあります。

私の各POJOは、

シリアライザーは、org.apache.log4j.Loggerがシリアライズ可能ではないと文句を言います。

使用する必要があります

代わりは?

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

java - マルチスレッド アプリケーションでのアクティビティのログ記録

さまざまなポイントから呼び出されるマルチスレッドデータアクセスレイヤーを持つJavaのレイヤードアプリケーションがあります。この層への単一の呼び出しは、DB への要求を並列化するために複数のスレッドを生成する可能性があります。

私が探しているのは、さまざまなスレッドで構成される「アクティビティ」を定義できるロギング ツールです。したがって、データ アクセス層の同じメソッドは、呼び出し元に応じて異なる出力をログに記録する必要があります。操作の総コストを要約するために、さまざまな出力をグループ化する機能も重要です。

アプリケーションは Java ですが、言語は制限ではありません。私が必要としているのは、最終的にそれを実装するための設計ガイドラインです。現在log4jを使用していますが、この動作を取得できません。

0 投票する
10 に答える
46082 参照

logging - 複数のサーバーから複数のログ ファイルを集約する最良の方法

多数の HP-UX サーバーに分散された複数のテキスト ログ ファイルを簡単に監視する方法が必要です。これらは、いくつかの分散型レガシー システムからのテキストおよび XML ログ ファイルの混合です。現在、サーバーに ssh してtail -fgrepを使用するだけですが、追跡するログが多数ある場合はスケーリングしません。

ログはさまざまな形式であり、フォルダー内のファイル (特定のサイズに達すると自動的にローテーションされる) であるため、リモートで収集し、それぞれを個別に解析する必要があります。

私が最初に考えたのは、ファイルの種類ごとにカスタム ファイル リーダーを使用して各サーバーで実行できる単純なデーモン プロセスを作成し、ソケットを介してネットワーク経由でエクスポートできる共通の形式に解析することでした。ローカルで実行されている別のビューアー プログラムは、これらのソケットに接続し、解析されたログを単純なタブ付き GUI に表示するか、コンソールに集約して表示します。

この方法で実装する場合、どのログ形式に変換する必要がありますか?

他の簡単な方法はありますか?Chainsawで使用するためにログ ファイルを log4j 形式に変換する必要がありますか?それとも、リモート ソケットに接続できるより優れたログ ビューアーがありますか? 別のログの質問で提案されているように、BareTailを使用できますか? これは大規模な分散システムではなく、すべてのアプリケーションの現在のロギング実装を変更して、UDP ブロードキャストを使用したり、メッセージを JMS キューに入れたりすることはできません。

0 投票する
10 に答える
34227 参照

java - log4j ログ ファイル名?

log4j に同じ構成情報を使用する必要がある、同時に実行される複数のジョブがあります。それらはすべて、同じアペンダーを使用してログを 1 つのファイルにダンプしています。各ジョブがログ ファイルに動的に名前を付けて、別々のままにする方法はありますか?

ありがとう
トム

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

java - 構成に関係なく、ルートロガーがすべてのログタイプを収集するのはなぜですか?

ルートタグでレベルを ERROR に指定しても、指定されたアペンダーが設定に関係なくすべてのレベル (デバッグ、情報、警告) をファイルに記録するという問題があります。私は Log4j の専門家ではないので、助けていただければ幸いです。

log4j.xmlを除いて、log4j.propertiesのクラスパスを確認しました(何もありません)。

log4j.xml ファイルは次のとおりです。

ルートを別のロガーに置き換えると、指定されたアペンダーには何も記録されません。

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

java - ログファイルをロールするようにTomcatJULIロギングを設定するにはどうすればよいですか?

java.util.loggingを使用するいくつかのWebアプリケーションがあります。Tomcat 5.5は、各Webアプリケーションが独自のログファイルを持つようにJuliロガーを使用するように構成されています。問題は、Juliに最大ファイルサイズとファイル数のプロパティがないことです。Juliを使用すると、ファイルは無制限に大きくなり、1日の終わりにのみロールされます。また、無制限の数のログファイルが保持されます。

このページでFileHandlerのプロパティを確認できます-ApacheTomcat5.5のドキュメント
制限やカウントのプロパティはありません(次の行は何もしません)
org.apache.juli.FileHandler.limit=102400
org.apache.juli.FileHandler.count=5

Webアプリケーションを変更せずに、ログファイルサイズに何らかの制限があるアプリケーションごとに一意のログファイルを取得する方法はありますか?

更新: 私が見つけた解決策は、Juliロガーをまったく使用していませんでした! java.util.logging.FileHandler.limit=102400
java.util.logging.FileHandler.count=5

ありがとう、

グレッグ

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

java - Quartz ワーカースレッドを使用した log4j 出力の分割

全体的な Quartz ベースのスケジューラと CronTriggers を使用して実行される「CycledJob」で構成されるアプリケーションに取り組んでいます。アプリケーションの目的は、送信元の国に基づいて、さまざまな電子メールの受信トレイからの入力を処理することです。

送信元の国 (米国、英国、フランスなど) に基づいて、アプリケーションは 1 つのジョブ スレッドをトリガーして各国の処理サイクルを実行します。そのため、英国のワーカー スレッド、米国、フランスなどに 1 つのスレッドが存在します。出力を log4j にフォーマットするとき、スレッド パラメーターを使用しているため、[ApplicationName_Worker-1]、[ApplicationName_Worker-2] などを発行します。 Quartz のスレッドプールから引き出されました。Quartz を拡張することもできますが、標準ライブラリをいじるのではなく、別の解決策を考えたいと思います。

問題は次のとおりです。log4j を使用する場合、米国のスレッドのすべてのログ項目を米国のみのファイルに出力したいと考えています。同様に、各国のスレッドについても同様です。それらが 1 つの統合された ConsoleAppender にとどまっているかどうかは気にしません。FileAppender の分割は、私がここで求めているものです。複数のファイルアペンダーなどを指定する方法はすでに知っていますが、国によって区別できないという問題があります。アプリケーション内には実行チェーン上に存在する可能性のある 20 以上のクラスがありますが、すべてのメソッドを介して追加の「コンテキスト」パラメーターを渡すという知識を負担にしたいクラスはほとんどありません... log4j ラッパー クラスを使用していますが、ロガー呼び出しをパラメーター化するスレッドをチェーン内のすべてのクラスに知らせることができない限り、それは不可能に思えます。

では、ここで質問があります。アプリケーション内のさまざまなスレッドごとに入力を処理するために使用される多くの下位クラスが、ログを記録しているときに特定の国のスレッドのコンテキスト内にあることを認識できるようにするための推奨されるアプローチは何でしょうか?

よく理解してください。明確な質問をしてください。誰かがこれに取り組むための適切な方法を見つけるのを手伝ってくれることを願っています. すべての提案を歓迎します。