先看一下日志被记录到数据库中的效果图:
引入logback依赖包:
dependencies{
compile group: 'ch.qos.logback', name: 'logback-core', version: '1.2.1'
compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.1'
compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.5'
}
注:
1.如果其他依赖包中包含这两个logback依赖包,可省略上面两个;
2.MySQL的JDBC的驱动包为连接数据库所用。以下以MySQL为例,其他数据库类似。
配置logback.xml文件:
com.mysql.jdbc.Driver
jdbc:mysql://*.*.*.*:3306/databases
user
passworld
注:
1. *.*.*.*:3306/databases为数据库地址;
2.user、password为此数据库的登录名和密码。
在数据库中添加logback日志数据表
# 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.classic.db.DBAppender.
#
# It is intended for MySQL databases. It has been tested on MySQL 5.1.37
BEGIN;
DROP TABLE IF EXISTS logging_event_property;
DROP TABLE IF EXISTS logging_event_exception;
DROP TABLE IF EXISTS logging_event;
COMMIT;
BEGIN;
CREATE TABLE logging_event
(
timestmp BIGINT NOT NULL,
formatted_message TEXT NOT NULL,
logger_name VARCHAR(254) NOT NULL,
level_string VARCHAR(254) NOT NULL,
thread_name VARCHAR(254),
reference_flag SMALLINT,
arg0 VARCHAR(254),
arg1 VARCHAR(254),
arg2 VARCHAR(254),
arg3 VARCHAR(254),
caller_filename VARCHAR(254) NOT NULL,
caller_class VARCHAR(254) NOT NULL,
caller_method VARCHAR(254) NOT NULL,
caller_line CHAR(4) NOT NULL,
event_id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
COMMIT;
BEGIN;
CREATE TABLE logging_event_property
(
event_id BIGINT NOT NULL,
mapped_key VARCHAR(254) NOT NULL,
mapped_value TEXT,
PRIMARY KEY(event_id, mapped_key),
FOREIGN KEY (event_id) REFERENCES logging_event(event_id)
);
COMMIT;
BEGIN;
CREATE TABLE logging_event_exception
(
event_id BIGINT NOT NULL,
i SMALLINT NOT NULL,
trace_line VARCHAR(254) NOT NULL,
PRIMARY KEY(event_id, i),
FOREIGN KEY (event_id) REFERENCES logging_event(event_id)
);
COMMIT;
注:不同数据库的建表sql脚本在logback-classic/src/main/java/ch/qos/logback/classic/db/script文件夹下找到(就是上面引入的logback-classic包里面)。其中包括:db2.sql、h2.sql、hsqldb.sql、mssql.sql、oracle.sql、postgresql.sql、sqlite.sql、sybaseSqlAnyWhere.sql等sql脚本文件。
加载logback.xml文件
不同的框架集成logback的方式不一样,此处以Spring Boot为例:
在application.properties文件中加入下面这句话,并把logback.xml文件放在src/main/resources文件夹下,启动Spring Boot程序即可!
logging.config=classpath:logback.xml