Я заинтересован в использовании slf4j-logback
в моем проекте и хотел бы использовать DBAppender
.Logback DBAppender DDL?
По-видимому, если вы не реализуете свой собственный DBNameResolver
, вы должны соблюдать конкретные критерии/схему таблицы, указанные в приведенной выше ссылке. В частности, вам нужны 3 таблицы с очень конкретными столбцами.
Хотя информация на этой странице довольно многословна, она не содержит никаких «метаданных таблицы» (ключи, индексы, значения по умолчанию и т. Д.), И мне интересно, оставим ли мы, чтобы добавить их в нашу по собственному усмотрению или если они должны быть определены с определенными значениями.
Я попытался найти DDL или SQL-скрипт для создания этих таблиц, но не смог найти их. Существуют ли такие сценарии? Как другие SOers имели дело с созданием этих таблиц DBAppender
? Заранее спасибо!
Edit: Я нашел this article on Grails обсуждение DBAppender
:
Вы должны создать таблицы базы данных самостоятельно. Существует три таблицы, а распределение журналов поставляется с образцом DDL для нескольких популярных баз данных.
Я скачал последнюю версию (1.0.13) распределения и обыскали его высоко и низко для .ddl и .sql файлов, и нашел что-то , напоминающее то, что я искал, расположенный по адресу:
Logback-1.0.13/Logback доступа/SRC/главная/Java/ч/QOS/Logback/доступ/дб/скрипт/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
). Поэтому я все еще не понимаю ...
См. ответ elton, который является правильным. Вероятно, вы должны удалить этот ответ, ошибочно принятый как правильный. – Ceki