- PR -

log4jでローテートができない

1
投稿者投稿内容
すてぃーぶ
会議室デビュー日: 2003/05/20
投稿数: 13
投稿日時: 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
すてぃーぶ
会議室デビュー日: 2003/05/20
投稿数: 13
投稿日時: 2006-02-16 17:37
追加情報です。
ローテート(ローリングと言うべきでしょうか)できない、という症状ですが、バックアップされたhoge.log.1は、hoge.log.2になってゆきます。問題はhoge.logがhoge.log.1にならない、というところです。
すてぃーぶ
会議室デビュー日: 2003/05/20
投稿数: 13
投稿日時: 2006-02-16 21:10
すみません。本人です。
現象の把握が間違ってましたので訂正します。
「サーブレットAだけが動いている間は正常にローテート」
はどうも違っていたようです。
hoge1.log.1が元々あったところをみると「以前は動いていた」ようですが、
今あらためて観察してみるとやはりローリングしていないようです。
すてぃーぶ
会議室デビュー日: 2003/05/20
投稿数: 13
投稿日時: 2006-02-16 22:33
さらに本人です。
問題のアプリは別人が書いたもので(すてぃーぶはプログラマではないので、まともに書いた事がありません)そのソースを見ていたのですが、


/** ロガーオブジェクト */
private Logger logger = Logger.getLogger(this.getClass());

/** ログメッセージ生成クラス */
private LogUtils logUtils = new LogUtils();

となっています。
loggerインスタンスを生成する場合、
PropertyConfigurator.configure(hoge);
といった、設定ファイルを指定する必要があると思うのですが、どうなんでしょう?
無くてもいいのでしょうか?

1

スキルアップ/キャリアアップ(JOB@IT)