咱们知道将数据库输出到不一样的地方须要使用不一样的appender表示,那下面了解一下输出到数据库的DBAppender。java
因为DBAppender会把记录写到数据库中,所以咱们必须知道数据库的表结构。这个结构是固定的,可是能够经过继承DBAppenderBase类来实现修改表的结构,详细作法参考https://blog.csdn.net/qq_20914913/article/details/92830914#%E4%B8%80%E3%80%81%E5%8E%9F%E5%A7%8Blogback%20%C2%A0MySQL%E9%85%8D%E7%BD%AEsql
DBAppender会把记录事件写入数据库的三张表(logging_event、logging_event_property、logging_event_exception),而且这三张表的结构是固定的。建立这三张表的脚本以下:数据库
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;
ConnectionSource有3种类型实现:DataSourceConnectionSource、DriverManagerConnectionSource 和 JNDIConnectionSource。apache
DriverManagerConnectionSource类型是直接使用DriverManager经过jdbc驱动链接数据库的,而不是使用数据源DataSource得到数据库链接。app
xml文件配置:maven
注意:使用DriverManager得到数据库链接的方式的配置格式是相同的,所以不须要改动格式。标准的格式如上图所示。之后使用直接copy就能够了。ui
该方式是从javax.sql.DataSource取得链接的。因为DataSource有不少种类型的实现,所以不一样的实现类中具备相同功能的属性的属性名可能不尽相同,所以可能形成<dataSource>标签的子标签名不尽相同。spa
xml文件配置:.net
因为DataSource有不一样的实现,好比Druid、c3p0、dbcp数据源等。每一种数据源对用户名与密码驱动等属性的命名可能不一致,所以致使配置文件的标签有可能不同。下面列举一下Druid与c3p0类型数据源的appenderde的配置。3d
须要导入druid-1.0.29.jar文件,jar下载地址:http://repo1.maven.org/maven2/com/alibaba/druid/
须要导入c3p0-0.9.1.2.jar文件,jar下载地址:http://sourceforge.net/projects/c3p0/
须要导入Commons-dbcp-1.x.jar与Commons-pool-1.x.jar两个jar文件,下载网址:http://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi
总结:
经过配置Druid类型数据源的DBAppender与c3p0类型数据源的DBAppender以及dbcp类型数据源的DBAppender能够发现他们有如下区别:存储用户名、驱动、资源定位符使用的标签是不一样的。
下面了解一下链接池的配置