プロジェクトで使用することに興味があり、使用slf4j-logback
したいと考えていDBAppender
ます。
どうやら、独自の を実装しない限り、DBNameResolver
上記のリンクで概説されている特定のテーブル基準/スキーマに従う必要があります。具体的には、非常に特殊な列を持つ 3 つのテーブルが必要です。
そのページの情報はかなり詳細ですが、「テーブルのメタデータ」 (キー、インデックス、デフォルト値など) は含まれていません。特定の値で定義する必要があります。
これらのテーブルを作成するための DDL または SQL スクリプトを探してみましたが、見つかりませんでした。そのようなスクリプトは存在しますか? 他の SOer は、これらのDBAppender
テーブルの作成をどのように処理しましたか? 前もって感謝します!
編集: Grailsについて議論しているこの記事を見つけましたDBAppender
:
データベース テーブルは自分で作成する必要があります。3 つのテーブルがあり、Logback ディストリビューションには、いくつかの一般的なデータベース用のサンプル DDL が付属しています。
最新の (1.0.13) ディストリビューションをダウンロードし、.ddl ファイルと .sql ファイルを徹底的に検索したところ、探していたものに似たものが次の場所に見つかりました。
logback-1.0.13/logback-access/src/main/java/ch/qos/logback/access/db/script/mysql.sql
# Logback: the reliable, generic, fast and flexible logging framework.
# Copyright (C) 1999-2010, QOS.ch. All rights reserved.
#
# See http://logback.qos.ch/license.html for the applicable licensing
# conditions.
# This SQL script creates the required tables by ch.qos.logback.access.db.DBAppender.
#
# It is intended for MySQL databases. It has been tested on MySQL 5.0.22 with
# INNODB tables.
BEGIN;
DROP TABLE IF EXISTS access_event_header;
DROP TABLE IF EXISTS access_event;
COMMIT;
BEGIN;
CREATE TABLE ACCESS_EVENT
(
timestmp BIGINT NOT NULL,
requestURI VARCHAR(254),
requestURL VARCHAR(254),
remoteHost VARCHAR(254),
remoteUser VARCHAR(254),
remoteAddr VARCHAR(254),
protocol VARCHAR(254),
method VARCHAR(254),
serverName VARCHAR(254),
postContent VARCHAR(254),
event_id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
COMMIT;
BEGIN;
CREATE TABLE access_event_header
(
event_id BIGINT NOT NULL,
header_key VARCHAR(254) NOT NULL,
header_value VARCHAR(1024),
PRIMARY KEY(event_id, header_key),
FOREIGN KEY (event_id) REFERENCES access_event(event_id)
);
COMMIT;
ただし、これらのテーブル (access_event
およびaccess_event_header
) は、ドキュメントで引用されているもの ( 、、および)と同じ 3 つのテーブルではありません。だから私はまだここで途方に暮れています...logging_event
logging_event_property
logging_event_exception