springboot日志写入mysql_SpringBoot集成logback将日志输出到MySQL数据库

logback将日志输出到数据库时,数据库必须包含三张表;

建表语句如下:

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;

新建logback配置文件logback-spring.xml

在application.properties配置文件中设置logback配置文件路径:logging.config=classpath:logback-spring.xml

logback

info

${CONSOLE_LOG_PATTERN}

UTF-8

com.mysql.cj.jdbc.Driver

jdbc:mysql:数据库地址

数据库账号

数据库密码

在使用过程中遇到一个坑,出现以下报错信息:

DBAppender cannot function if the JDBC driver does not support getGeneratedKeys method and without a specific SQL dialect

网上给了好多种情况和解决方法都没有效果,最后发现是数据库密码写错了,经过尝试,发现只要logback配置文件中有错误的地方都会报这个错,大多数情况下和

JDBC driver并没有关系。


版权声明:本文为weixin_33370255原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。