2011-01-07 6 views
1

小さなJavaフレームワークを作成しています。これはイベントを記録します。私はフレームワークが特定のロギング実装(julcommons logginglog4jslf4jlogbackなど)に依存しないようにしたいと思います。代わりに、私は自分の好きなものを選ぶことができます。ロギング実装とAPIのデカップリング方法は?

問題は - 私はどのようにそのようなデカップリングを実現する必要がありますか?私のフレームワークがイベントを記録する方法

答えて

1

情報とエラーメッセージを記録するためにあなたのコードが何かを呼び出さなければならないので、達成することは難しいと思います。私はあなたが1つを選んで(私はslf4jを推奨する)それに固執しなければならないと思う - これは他の誰もが一般的に行っているようだ。

0

AspectJおよびCommons Loggingのサポートが含まれます。

+0

私は自分のコメントを追加して、これが他のフレームワーク、とりわけSpringで解決された問題だと言っています。 Spring 3.xはすでにApache Commons Loggingをサポートしています。Apache Logonsは、デフォルトで添付されている基本的な実装を持つロギングインターフェイスです。 –

5

slf4jは、この問題を正確に解決するように設計されています。これは、APIをロギング実装から切り離します。

slf4jは単独のログ実装ではありません。これはバックエンド実装の存在に依存します。 Logbackは、slf4j APIをネイティブに実装するだけですが、log4j、java.util.Loggingなどのバインディングがあります。

あるレベルでは、にはにクライアントが使用するAPIが必要です。独自のAPIを作成するのではなく、既存のAPIの1つにすることもできます。

関連する問題