質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Oracle Database 12c

Oracle Database 12cは、RDBMS製品です。世界初の商用RDBMSであるOracle Databaseのバージョンで、2013年にリリース。クラウド対応を考慮して設計されました。主な機能には、マルチテナント対応やインメモリデータベースの実装などがあります。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Apache log4j

Apache log4jは、Javaのログユーティリティです。Apache Software Foundationの元で開発されており、Apache Software Liense 2としてライセンスが与えられています。

Q&A

0回答

2592閲覧

log4jのJdbcAppenderが機能していないときの確認方法

propg

総合スコア113

Oracle Database 12c

Oracle Database 12cは、RDBMS製品です。世界初の商用RDBMSであるOracle Databaseのバージョンで、2013年にリリース。クラウド対応を考慮して設計されました。主な機能には、マルチテナント対応やインメモリデータベースの実装などがあります。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Apache log4j

Apache log4jは、Javaのログユーティリティです。Apache Software Foundationの元で開発されており、Apache Software Liense 2としてライセンスが与えられています。

0グッド

0クリップ

投稿2019/12/20 08:32

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問