- - PR -
log4jでローテートができない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-02-15 12:10
log4jでローテートができません。
ひとつのパッケージ内で、二つのサーブレットを使用しています。 ひとつ(A)はWEB画面を扱う、通常のWEBアプリのサーブレット、もうひとつ(B)は他サーバーとソケット通信を行うアプリ(ファイル取得)をラップしたサーブレットで、Aのある画面でBのサーブレットを呼び出して、取得したファイルを画面に返却する、という構造になっています。 で、サーブレットAだけが動作している間は正常にローテートされるのですが、一度でもサーブレットBが動くと、以後はローテートされなくなってしまいます。 ちなみに、log4j.propertiesを変更すると、サーブレットAに対しては変更が有効ですが、サーブレットBが動かなくなってしまい、HTTP Status500を返却してしまいます。 Tomcatを再起動すれば反映されて正常に動作するようになります。 判りにくい説明ですみません。 このような状況について、何かヒントをお持ちの方、よろしくお願いします。 環境: OS:win2000 tomcat4.1.31 |
|
投稿日時: 2006-02-16 17:37
追加情報です。
ローテート(ローリングと言うべきでしょうか)できない、という症状ですが、バックアップされたhoge.log.1は、hoge.log.2になってゆきます。問題はhoge.logがhoge.log.1にならない、というところです。 |
|
投稿日時: 2006-02-16 21:10
すみません。本人です。
現象の把握が間違ってましたので訂正します。 「サーブレットAだけが動いている間は正常にローテート」 はどうも違っていたようです。 hoge1.log.1が元々あったところをみると「以前は動いていた」ようですが、 今あらためて観察してみるとやはりローリングしていないようです。 |
|
投稿日時: 2006-02-16 22:33
さらに本人です。
問題のアプリは別人が書いたもので(すてぃーぶはプログラマではないので、まともに書いた事がありません)そのソースを見ていたのですが、 /** ロガーオブジェクト */ private Logger logger = Logger.getLogger(this.getClass()); /** ログメッセージ生成クラス */ private LogUtils logUtils = new LogUtils(); となっています。 loggerインスタンスを生成する場合、 PropertyConfigurator.configure(hoge); といった、設定ファイルを指定する必要があると思うのですが、どうなんでしょう? 無くてもいいのでしょうか? |
1