新しいクラスをどのインターフェイスにプログラムしますか?loag4jまたはslf4j?
SLF4Jを使用する場合は、そのインターフェイスにプログラムします。これは、基盤となるロギングの実装に最も柔軟性を提供します。slf4jのポイントは、プログラムできるインターフェイスになることです。したがって、将来、たとえばログバックに切り替えることにした場合でも、コードを書き直す必要はありません。
jarをデプロイするための好ましい方法は何ですか?それらをアプリケーション戦争に入れますか、それともTomcatライブラリに入れますか?
それらをあなたのWARに入れてください。
JARをTomcatlibsディレクトリに配置する唯一の理由(imo)は、JARがネイティブライブラリをロードする必要がある場合です。Javaでは2つの異なるクラスローダーから同じネイティブライブラリをロードできないため、共通の場所に配置する必要があります。しかし、それはここでは当てはまりません。
一部の人々は、libディレクトリをスペースを節約する方法と考えています。これは、「サーバークラス」のマシンに1 GBのRAMが搭載されていた場合に有効だった可能性がありますが、それ以上ではありません。また、回避lib
するということは、デバッグが難しいクラスローディングの問題のほとんどを回避することを意味します。
どのjarをデプロイする必要がありますか?
- slf4j-apiは基本的なAPIです
- slf4j-log4j12は、実際のログをLog4Jにルーティングします
- jcl-over-slf4jは、Commons Loggingをインターセプトし、SLF4Jを介して(Log4Jに)ルーティングします。
- log4jが物理ロギングフレームワークになります
Log4Jの構成が既にあるか、その構成を作成することに慣れていることを前提としています。そうでない場合、そしてあなたが気にするのはLog4Jを内部で使用するコードを扱うことだけですlog4j-over-slf4j
、それはLog4J呼び出しを傍受します。次に、Logbackなどのフレームワークを選択する必要があります。
(注:私は元々これらすべてのパッケージへのリンクを追加しましたが、それらを投稿するのに十分な担当者がいません。したがって、すべてのSLF4Jパッケージが強調表示されたMavenリポジトリーへの単一のリンクがあります)