我有兴趣在slf4j-logback
我的项目中使用,并希望使用DBAppender
.
显然,除非您实现自己的 ,否则您DBNameResolver
必须遵守上面链接中列出的特定表格标准/模式。具体来说,您需要 3 个具有非常特定列的表。
尽管该页面上的信息相当冗长,但它不包括任何“表元数据”(键、索引、默认值等),我想知道我们是否可以自行决定添加这些元数据,或者是否它们需要用特定的值来定义。
我尝试寻找用于创建这些表的 DDL 或 SQL 脚本,但找不到。这样的脚本存在吗?其他 SOers 是如何处理这些DBAppender
表的创建的?提前致谢!
编辑:我发现这篇关于 Grails 的文章在讨论DBAppender
:
您必须自己创建数据库表。共有三个表,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
) 不同。所以我在这里仍然不知所措......