1

小さなユーティリティ ライブラリを作成していて、ログを記録する必要があります。ユーザーに Log4J や commons-logging などの特定のログ フレームワークを強制的に使用させたくないので、SLF4J を使用してすべてのブリッジを含めて、ユーザーが使用しているものと統合する必要がありますか? または、java.util.logging を使用する必要がありますか? これもMavenプロジェクトであることに言及する必要があります。

4

2 に答える 2

4

個人的には、このような場合、実行時の依存関係は次のとおりです。

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
</dependency>

そしてこれらはテスト用です:

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <scope>test</scope>
</dependency>

So when someone wants to use me, they have to include only the bridge for their logging implementation.

EDIT: I use dependency management that's why version is missing :)

于 2013-01-06T00:37:05.147 に答える
1

はい、非常に多くの異なるロギングフレームワークが存在するのは残念です...

クライアントを特定のロギング実装に結び付けないようにしたい場合は、slf4jが最良の代替手段です。もう1つの方法はApacheCommonsLoggingですが、深刻な問題があります。http://articles.qos.ch/thinkAgain.htmlを参照してください。

(java.util.loggingを使用すると、主要な要件に違反します...)


もう1つの方法は、ライブラリでロギングをまったく行わないことです。

于 2013-01-06T00:55:51.457 に答える