7

お客様のサイトに (テスト環境で) Web アプリケーションをデプロイしているときに、アプリケーションのログ記録に関する問題が発生しました。現在の状況を簡単に説明します。

  • 実装は、java.util.logging と apache.commons.logging によって取得される Logger を使用します。
  • デプロイされたパッケージには、JUL を指す commons-logging.properties が存在します。
  • アプリケーションは Tomcat 6.x で実行されています

顧客は、Tomcat で Log4J を使用することを決定し、(一般的に) 動作するように構成しました。もちろん、前述のアプリケーションでは動作しません。

とにかくロギングの実装を変更する必要があるように思われるので、Web アプリケーションにロギングを実装する方法について、いくつかのベスト プラクティスを教えてください。次のことが可能である必要があります。

  • お客様は、*.war ファイルを変更せずにログ レベルを変更できる必要があります。-> war ファイルを変更する必要がある場合は、新しいビルドごとにこれを行う必要があります ...
  • ある種のローリング ファイル ロギング (例: それぞれ最大 10 MB の最大 10 個のファイル) を使用できる必要があります。もちろん、この設定を定義および変更することも顧客次第です ...
  • 別の顧客が代わりに標準の JUL ロギングを使用したい場合があるため、もちろん、優先ライブラリ (この場合は Log4J) をハードコーディングしないことを好みます。
4

2 に答える 2

6

お客様は、*.war ファイルを変更せずにログ レベルを変更できる必要があります。

ロギング フレームワーク構成ファイル (log4j.xmlまたはlogback.xml) を WAR ファイルの外に置くことができます。または、このファイルが変更されたときの自動再構成をサポートしています。

ある種のローリングファイルロギングが可能になるはずです

と Logback は両方とも、サイズと日付の両方に基づいて、ファイルのロールバックをサポートしていますRollingFileAppender

別の顧客が代わりに標準の JUL ロギングを使用したい場合があるため、もちろん、優先ライブラリ (この場合は Log4J) をハードコーディングしないことを好みます。

根本的に壊れています。代わりにを使用してください。次に、CLASSPTH にさまざまな実装を配置するだけです。また、SLF4J API は非常に満足しています。

于 2012-05-31T18:53:31.523 に答える
2

SLF4Jをご覧ください。これは本質的に、エンドユーザーが必要なログライブラリにドロップできるようにするラッパーです(ほとんどの場合)。

私は試していませんが、コードを変更して使用するのに役立つ移行ツールもあります。

于 2012-05-31T18:52:04.003 に答える