- PR -

(log4j)ログが違う時間帯のファイルに出力されてしまいます

1
投稿者投稿内容
B2
会議室デビュー日: 2006/08/01
投稿数: 1
投稿日時: 2006-08-01 20:48
初めて質問いたします。
以下、長文となりますが、log4jのDailyRollingFileAppenderによるログ出力の
振る舞いについて、みなさまのお知恵をお借りしたく、どうぞよろしくお願いいたします。

*−−−−−−−−−−−−*
[利用環境]
OS :Windows2003Server
log4j:1.2.9
WAS :WebLogic8.1J SP4(毎朝6時に再起動)
*−−−−−−−−−−−−*

アクセスログをlog4jのDailyRollingFileAppenderで出力しています(yyyy-MM-dd-HH)。
その際に、まれになのですが、WebLogicを再起動する6時のログファイルに、前日の
アクセスログが出力されることがあります。
※つまり、log4j_access.log.2006-07-26-06の中身を見ると
  2006-07-25 19:10:04
  2006-07-25 19:10:27
 というように、違う時間帯のログだけが出力されています。

過去の投稿から、「WebLogic再起動によってJVMが前のログ出力時間をもっていない」
ために変な振る舞いになっているのかとも考えたのですが、それですと現象がまれにしか
発生しない理由がよくわかりません。

回避策がありましたら、教えていただけませんでしょうか。

<補足>
6時のログファイルの更新日時は2006年7月26日6:00:00となっているのですが、6時台の
アクセスは一切ないため、6時台のアクセスログは出力されていません。
(log4j_access.log.2006-07-26-08の更新日時が、2006年7月26日9:20:22に
 なっていたこともあるが、ほとんどはファイル内の最終行ログの時間が更新日)

可能性としては、log4jのバッファリング?
しかし、log4jはデフォルトでバッファリングせずにログ出力されますよね…。

log4j.propertiesの設定は、下記の通りです。
−−−−−−−−−−−−
# appender Accessを加えます。
log4j.category.common.filter.AccessLoggingFilter=INFO, Access

# Access にDailyRollingFileAppenderをセットします
log4j.appender.Access=org.apache.log4j.DailyRollingFileAppender

# Access に出力先をセットします
log4j.appender.Access.File=C:\\WebModule2\\Log\\Log4j\\log4j_access.log

# Access にログローテーション形式をセットします(時間単位)
log4j.appender.Access.DatePattern = '.'yyyy-MM-dd-HH

# Access は、PatternLayout を使用します。
log4j.appender.Access.layout=org.apache.log4j.PatternLayout
log4j.appender.Access.layout.ConversionPattern=%-4r %d [%t] %-5p %c %x - %m%n
−−−−−−−−−−−−

どうぞ、よろしくお願いいたします。


[ メッセージ編集済み 編集者: B2 編集日時 2006-08-01 20:49 ]

[ メッセージ編集済み 編集者: B2 編集日時 2006-08-01 20:51 ]
1

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