- - PR -
log4jで日毎にローテーションされない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-03-01 16:35
お世話になっております。
log4jを使用してでDailyRollingFileAppenderで日毎にローテーションを行う設定と サイズでローテーションを行う設定の2つの設定でログを出力しているのですが、 サイズによるローテーションは問題ないのですが、DailyRollingFileAppenderで 設定を行っているログが日毎にローテーションされないという問題が発生しております。 過去スレを検索してみましたが、log4j.jarの位置云々で治ったという話が出ていたので 移動してみましたが、直りませんでした。 環境は以下の通りです。 サーバ:HP-UX WEBサーバ等:Zeus4.2r4+WebLogic6.1SP2 以下log4j.propertiesの設定内容 log4j.rootCategory=INFO, stdout, DebugLog, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d [%c{2}] %-5p - %m%n log4j.appender.DebugLog=org.apache.log4j.RollingFileAppender log4j.appender.DebugLog.File=/tmp/debug.log log4j.appender.DebugLog.MaxFileSize=10MB log4j.appender.DebugLog.MaxBackupIndex=3 log4j.appender.DebugLog.layout=org.apache.log4j.PatternLayout log4j.appender.DebugLog.layout.ConversionPattern=%d [%c{2}] %-5p - %m%n log4j.appender.R=org.apache.log4j.DailyRollingFileAppender log4j.appender.R.File=/home/app/log/aplog/aplog.log log4j.appender.R.DatePattern='.'yyyyMMdd log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%d [%c{2}] %-5p - %m%n log4j.appender.R.threshold=INFO 何かご存知の方がいらっしゃいましたら宜しくお願いします。 |
|
投稿日時: 2005-03-02 13:27
DailyRollingFileAppender の挙動は、
1. 指定のログ・ファイル(logfile)にログを書こうとして、「以 前にログを書いたとき」より日付(など)が進んでいるかどうか をチェック。 2. 日付(など)が進んでいたら、ログ・ファイルを日付フォーマッ ト付きファイル(logfile.yyyy-MM-dd)に退避。 3. 指定のログ・ファイル(logfile)にログを出力。 というものです。 VM が起動された直後には、1. で「以前ログを書いたとき」があ りませんので、常に logfile にログを出力します。 つまり、アプリケーションが動作している「最中」に日付が変わ らない限り、期待通りの動作はしてくれないわけです。 |
|
投稿日時: 2005-03-04 10:13
yos様 返信ありがとうございます。
原因は分かりました。 次の日に日付が変わったときに出力されたログをみると cronで実行しているjavaプログラムがログを出力していたので、 シェルの内容を確認したところ・・・ 古いlog4jのjarを使用していました。 それを新しいものに変更したところ無事ローテーションされました。 >VM が起動された直後には、1. で「以前ログを書いたとき」があ >りませんので、常に logfile にログを出力します。 > >つまり、アプリケーションが動作している「最中」に日付が変わ >らない限り、期待通りの動作はしてくれないわけです。 これですが、アプリケーションが停止している状態で、 前日のログがあるのを確認してから起動->ログ出力を 行ったら普通にローテーションするのですが・・・ 私も最初は以前のログを書いたときが無ければローテーションされないと 思っていましたが、そうではないようです。 |
1