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

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

新規登録して質問してみよう
ただいま回答率
87.20%
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としてライセンスが与えられています。

受付中

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

propg
propg

総合スコア112

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評価

0クリップ

1378閲覧

投稿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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

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としてライセンスが与えられています。