0

こんにちは、Tomcat アプリケーションのアクセス ログに db を使用しようとしています。

Tomcatのドキュメントに従いました。https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/valves/JDBCAccessLogValve.html

サーバーは正常に起動しているようですが、テーブルにエントリが作成されていません。しかし、Tomcat が接続パラメーターを取得していることがわかります (無効な接続パラメーターを指定すると、サーバーは起動しません)。

これは、アクセス ロギング用の server.xml 構成です。

    <Valve className="org.apache.catalina.valves.JDBCAccessLogValve"
           driverName="com.mysql.jdbc.Driver"
           connectionURL="jdbc:mysql://localhost:3306/test?user=root"
          pattern="combined" resolveHosts="false" tableName="access" />

私は組み合わせパターンを使用しており、作成されたテーブルにはドキュメントで指定されている正確なスキーマがあります-

CREATE TABLE access (
id INT UNSIGNED AUTO_INCREMENT NOT NULL,
remoteHost CHAR(15) NOT NULL,
userName CHAR(15),
timestamp TIMESTAMP NOT NULL,
virtualHost VARCHAR(64) NOT NULL,
method VARCHAR(8) NOT NULL,
query VARCHAR(255) NOT NULL,
status SMALLINT UNSIGNED NOT NULL,
bytes INT UNSIGNED NOT NULL,
referer VARCHAR(128),
userAgent VARCHAR(128),
PRIMARY KEY (id),
INDEX (timestamp),
INDEX (remoteHost),
INDEX (virtualHost),
INDEX (query),
INDEX (userAgent)
);

Catalina.out は、このコンテキストに役立つ情報を記録していないようです。

PS DB ロギングには多くの障害点があることは理解していますが、私のアプリケーションのプライマリ データベースはこれと同じです。したがって、失敗点は一種の共有です。

4

1 に答える 1