2009-06-16 16 views
5

ログにlog4jを使用しているクライアントに配布されるいくつかのjarファイルがあります。私の質問は、jarファイルにlog4j.xml設定を含めるか、クライアントがログを必要とするかどうかをクライアントに伝える必要がありますか?クライアントjarのlog4j.xml

私の気持ちは、Apacheのjarファイルすべてがlog4jロギングが付属しているので、クライアントの瓶のからlog4j.xml設定ファイルを残しているが、サンセリフのlog4j.xml。

答えて

9

はい、放置しないでください。アプリの60個のサードパーティ製ライブラリのうちの1つに独自のライブラリが含まれているため、log4j設定ファイルが無視されると、まったく迷惑です。

0

アプリケーションでlog4jを使用している場合は、それをプロジェクトに組み込みます。あなたがそうでないなら、あなたはなぜそれをそこに置くのですか?クライアントAがlog4jバージョン1.2を望んでおり、クライアントBがlog4jバージョン1.3を望んでいる場合はどうなりますか?

プロジェクトに必要なものを決定し、自分が必要とするものについて心配しましょう。

+0

おそらく実際のlog4j.jarの依存関係を参照していますが、私は構成ファイルlog4j.xmlについて説明しています。 –

+0

ああ、申し訳ありませんが、私はそれを逃した。このABIS jarファイルに依存するプロジェクトがあります。このABIS jarファイルには、独自のlog4j.xml設定ファイルがあります。私のlog4jパラメータは、インポートされたABIS jar(ログレベルが私が設定したDEBUGではなくERRORに設定されている)からのものによって上書きされることがあります。私は間違いなくそれを残して、クライアントにそれらを設定させるでしょう。 – amischiefr

5

あなたのケースでlog4jの良い点は、あなたの瓶が本当に心配する必要がないということです。 log4jの基本的な使用例は次のとおりです。

  1. あなたが出荷しているjarがある場合は、そのようなdebug("some message");
として現在のクラス
  • コールそのロガー上のいずれかの方法で、

    のためのロガーオブジェクトを取得大規模なアプリケーションで使用する場合、理想的にはあなたのコードは上記の2つのステップのみを実行します。このようにして、コードでは、クライアントのアプリケーション内のすでに設定されているlog4jインスタンスからロガーオブジェクトを取得するだけです。その場合、プロダクションコードはlog4jの設定方法を知らなくても結構です。

    jarsの開発に必要なロギングは、ユニットテストsetUp()メソッドなどでlog4jインスタンスをコンフィグレーションするか、クライアントに送信されるプロダクションコードにバンドルされないものと同様に設定できます。

  • 0

    私は設定xmlを追加して、別の設定とオプションを示すユーザの指示に従って読み込みます。これにより、追加のロギングを有効にすることが容易になります。

    +0

    これにより、クライアントは強制的にjarファイルの内容を編集します。私はそのことをベストプラクティスと呼んでいます。 –

    2

    私はあなたのクライアントがドキュメントで役に立つと思うデフォルトのlog4j設定を書いています。こうすることで、関心のある人々はあなたが持っているロギングオプションを知ることができます(通常、特定のクラスには、ユーザーの視点からより興味深いログメッセージがあります)。私はlog4jを使ってサードパーティ製のlibを持っていてドキュメントがなく、画面を満たしているログメッセージがあり、特定のログメッセージを有効または無効にする方法を見つけようとする必要があります。

    関連する問題