145

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

どう思いますか?

4

7 に答える 7

123

あなたが説明したニーズについては、おそらく util.logging で問題ないと思います。

適切なデシジョン ツリーについては、Log4j と java.util.loggingをご覧ください。

質問 1 : SMTPHandler、NTEventLogHandler、または非常に便利な FileHandlers など、Log4j にはあり、JUL にはない巧妙なハンドラーが必要になると思いますか?

質問 2 : ロギング出力のフォーマットを頻繁に切り替えたいと思っていますか? そのための簡単で柔軟な方法が必要ですか? つまり、Log4j の PatternLayout は必要ですか?

質問 3 : アプリケーションがコンパイルされ、運用環境にデプロイされた後、アプリケーションの複雑なログ構成を変更する機能が確実に必要になると予想していますか? 「このクラスからの重大なメッセージは電子メールでサポート担当者に送信されます。クラスのサブセットからの重大なメッセージはサーバーの syslog デーモンに記録されます。クラスの別のサブセットからの警告メッセージはログに記録されます。」ネットワーク ドライブ A のファイルに送信すると、どこからでもすべてのメッセージがネットワーク ドライブ B のファイルに記録されます。」そして、数日ごとに微調整していると思いますか?

上記の質問のいずれかに「はい」と答えられる場合は、Log4j を使用してください。それらすべてに明確にノーと答えるなら、JUL は十分すぎるほどであり、便利なことに SDK に既に含まれています。

そうは言っても、最近のほとんどすべてのプロジェクトは、他のライブラリがそれを使用しているという理由だけで、log4j を含むようになっているようです。

于 2008-08-28T08:37:16.053 に答える
45

Simple Logging Facade for Java (SLF4J)を使用することをお勧めします。Log4J を含むさまざまなプロバイダーをサポートし、Apache Commons Logging の代わりとして使用できます。

于 2008-08-28T10:58:36.993 に答える
22

Log4j は長い間存在しており、非常にうまく機能しています。それを裏付ける科学的研究はありませんが、多数のクライアントで見たものに基づいて、他のどのログ フレームワークよりも使用されていることが容易にわかります。これは長い間存在しており、Next Big Logging Framework に取って代わられることはありませんでした。

セットアップは非常に簡単で、基本的なアペンダー (出力) を習得するのも簡単です。以下を含む、利用可能なホストアペンダー全体があります。

  1. ConsoleAppender
  2. DailyRollingFileAppender
  3. ExternallyRolledFileAppender
  4. FileAppender
  5. JDBCAppender
  6. JMSAppender
  7. NTEventLogAppender
  8. RollingFileAppender
  9. SMTPAppender
  10. SocketAppender
  11. SyslogAppender
  12. TelnetAppender
  13. WriterAppender

プラスその他。独自のアペンダーを作成することも難しくありません。さらに、各アペンダーには非常に高い柔軟性があり、ログに出力する内容を具体的に制御できます。

log4j に加えて apache commons ロギングを使用すると、一連のクラスローダーの問題が発生しました。これは 1 つの特定のアプリケーションのためだけのものでしたが、コモンズ ロギングのような抽象化レイヤーを使用するときに提供される柔軟性よりも、log4j を単独で使用する方が簡単であることがわかりました。

詳細については、この記事を参照し てください

幸運を!

于 2008-08-30T23:34:39.797 に答える
17

java.util.loggingは、他のいくつかが提供する余分な手荷物のない包括的なロギングパッケージを提供します。

于 2008-12-16T10:55:40.190 に答える
7

log4j は全体的にはるかに優れたパッケージであり、java.util.logging に含まれるいくつかの問題はありません。次に、log4j を直接使用する方が、コモンズ ロギングを使用するよりも簡単です。

于 2008-09-09T03:57:08.340 に答える
4

Apache Commons Loggingをロギング インターフェイスとして使用することをお勧めします。そうすれば、コードを変更しなくても、いつでもロギングの実装を柔軟に切り替えることができます。

于 2008-08-28T09:40:33.747 に答える
3

私はlog4jで行きます。log4j の可能性はまったく時代遅れではありません!

于 2008-08-28T08:43:45.163 に答える