web-dev-qa-db-ja.com

Log4j 2.0とSLF4J、そして終わりのないJavaロギングフレームワークの未来

だから今日私はLog4J 2.0が現在活発に開発されていることを知りました、アルファ版があり、それはlogbackを置き換えると言われています。

現在、私のアプリには、4つ近くのロギングフレームワークがあります。

  • Java Util Logging
  • log4j
  • slf4j
  • logback(Maven提供のハックにより無視されます)
  • commons Logging(Mavenが提供するハックのおかげで無視されます)
  • そしてTomcatは独自のJULIアダプターを持っています

率直に言って、新しい人の機能を必要としなかったので、log4j(1.2.x)を使用していますが、最近切り替えたくなりましたSLF4Jと主に複雑なlog4j構成ファイルを新しい形式に書き直したくないため(logback)。

ここで私の質問は、何をコード化する必要があるかという点であり、SLF4Jはlog4j 2.0が与えられた場合の将来の正しい選択です。

古いlog4j(1.2.x)最小公分母なので?

PDATE: log4j 2.0をさらに詳しく調べたところ、非常によく似ていますが、構成にはlog4j 1.2との下位互換性がないようです。 logbackが最良の選択のようです。

39
Adam Gent

それは主観的な質問です。

Slf4jを使用することをお勧めします。必要な場合は、log4jをバックエンドとして使用できるためです。

さまざまなロギングAPIを使用する可能性のあるいくつかのコンポーネントを使用している可能性があります。これらのAPIを介して出力を単一の出力ルートに統合できるのは良いことです。

16
slim

免責事項:私はlog4j、slf4j、logbackプロジェクトの創設者ですが、log4j 2.0とは無関係です。

その名前にもかかわらず、log4j 2.0はlog4j 1.xとは非常に異なります。ユーザーAPIに関する限り、log4j 2.0はlog4j 1.xとほとんど互換性がありません。 Log4j 2.0は、現時点(2012-08)が undocumented であるlog4j 1.xの適応層を提供します。

34
Ceki