-1

次の要件で情報をログに記録する必要があります。

  • ファイルにデータを書き込むためのもので、後で処理されます
  • 出力行には事前定義された構造があります
  • 本当に速くなければならない
  • データをバッファリングし、バックグラウンドでファイルに書き込む必要があります。
  • ファイルの回転をサポートし、必要に応じて手動でファイルを回転できるようにする必要があります

これをサポートする優れたライブラリを知っていますか? それとも自分で書くことをお勧めしますか?自分で実装してもかまいませんが、決定を下す前に選択肢を知りたいです。

4

2 に答える 2

3

ほとんどの一般的な Java ロギング ライブラリは、おそらく非同期書き込み部分を除いて、あなたが求めているもののほとんどをサポートしています。次の広く使用されているライブラリを確認することをお勧めします。

  • Log4J - Log4J は非常に構成可能ですが、リリースされようとしている新しい 2.x バージョン シリーズで解決されるはずのいくつかの問題があります。

  • Logback - これは、Log4J 1.2 の後継として設計されました。Log4J 2.x には、Logback によって行われたいくつかの改善が含まれます。

  • SLF4J - このライブラリは、基礎となる多くのロギング ライブラリのプロキシとして機能し、必要に応じてロギング フレームワークを切り替えることができます。基礎となる API を直接使用するほど効率的ではない可能性がありますが、これは実際には特定のログ ライブラリにバインドすることを避けるための最良の選択かもしれません。

非同期書き込みの要件に関しては、必要に応じて、すべてのログを独自の別のスレッドにプッシュするのは比較的簡単です。

編集:

どうやら、Log4J は非同期ロギングをサポートしているようです。

于 2012-12-07T09:48:46.100 に答える
0

直接の経験はありませんが、log4j が非常に人気があるようです。簡単なチェックでは、ファイルのローテーションをサポートし、高速であると見なされていることがわかります (少なくとも、Java の組み込み機能よりも大幅に高速です)。これは、要件の中で最も厳しい 2 つのように思われます。

リンク:

メインサイト

いくつかのSOの議論

于 2012-12-07T09:48:00.047 に答える