log4jのJDBCAppenderを設定しました。
出力先はOracleで、INSERT文を直接指定しています。
WebアプリでTomcatを使用しています。
log4j.category.test=INFO, C, D, DB log4j.additivity.test=false log4j.appender.C=org.apache.log4j.ConsoleAppender log4j.appender.C.Target=System.out log4j.appender.C.ImmediateFlush=true log4j.appender.C.layout=org.apache.log4j.PatternLayout log4j.appender.C.layout.ConversionPattern=%-5p %d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %m%n log4j.rootLogger=INFO, A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %-5p %c{1} - %m%n log4j.appender.D=org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File=c:/logs/test.log log4j.appender.D.ImmediateFlush=true log4j.appender.D.layout=org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %-5p %c{1} - %m%n log4j.appender.D.DatePattern='.'yyyy-MM-dd log4j.appender.D.Encoding=sjis ... log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender log4j.appender.DB.URL=jdbc:oracle:thin:@******:1521:@@@@@@ log4j.appender.DB.driver=oracle.jdbc.driver.OracleDriver log4j.appender.DB.user=test log4j.appender.DB.password=test log4j.appender.DB.layout.ConversionPattern=INSERT INTO log (LOG_DATE, LOG_LEVEL, CATEGORY, MESSAGE, OUTPUT_SOURCE) VALUES (to_timestamp('%d{yyyy-MM-dd HH:mm:ss,SSS}','YYYY-MM-DD HH24:MI:SS,FF'), '%-5p', '%c{1}', '%m', 'STAGING') log4j.appender.DB.layout=org.apache.log4j.PatternLayout
このような設定で正常にLOGテーブルにINSERTがされていたので、そのまま起動させていました。
するとその翌日からログテーブルへ一切登録されなくなりました。
別のappenderで指定しているログファイルには正常に登録され続けています。
INSERTされなくなったのには何らかの原因があると思いますが、そのエラーなどが出力している場所は見つからず、原因が不明です。
INSERT自体しようとしていないのか、INSERTしようとしてエラーになったのか。。
こういった場合、出力されない原因を調査/確認する方法として、どんな方法が考えられるでしょうか。
- INSERTされなくなったのは本番環境で、自身の開発環境では問題なく出力されています。
- 日にちをまたいだ途端に出力されなくなったのには、関連があるのではないかと思っています。
- Tomcatを再起動すればまたその日中は出力される可能性はあります。
- 本番環境のため、安易に再起動などはできませんが、設定などの変更が必要であれば対応可能です。
- select last_active_time,parsing_schema_name,sql_text from v$sqlarea」で実行されているSQLを見ましたが、log4jによるINSERT文は発行されていません。
log4j-1.2.13
Java7
Tomcat7
あなたの回答
tips
プレビュー