[Logback+slf4j] Mysql DBAppender 正确配置方法 以及错误处理

第一必要条件:jar 包

所需要的包:

logback-core-0.9.8.jar

logback-classic-0.9.8.jar

slf4j-api-1.6.8.jar

写该文时,最新版本为 logback的版本为1.1.2. 对应的Slf4j-api 为 1.7.6 (两种配方都可以)

第二必要条件:数据库表创建脚本。

包括stackoverflow上的很多朋友在内的coder都被官方

http://logback.qos.ch/manual/appenders.html

中提到的getGeneratedKeys 误导了,都以为,只要是表格里支持的,就不用自动建立表了,而只需要加上sqlDialect方言。其实不是,不管支持与否都要手动创建表。(当然你可以自己写一个java
bean自动运行脚本来创建)。

还有看了很多网上的文章,经常出现 sqlDialect 这个配置节点。

我从logback 0.9.8开始测试的,对于Mysql,都不需要配置这个节点,oracle也不需要。

这一步,大家只需要在mysql中运行下面的脚本:

# 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
# on Linux

use tumorpredict;

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;

第三必要条件:正确的配置。

这里给出一个用c3p0连接池管理的logback配置:

    <appender name="db-classic-mysql" class="ch.qos.logback.classic.db.DBAppender">
        <connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">
            <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
                <driverClass>com.mysql.jdbc.Driver</driverClass>
                <jdbcUrl>jdbc:mysql://{$server ip}:3306/{$dbname}</jdbcUrl>
                <user>{$user}</user>
                <password>{$password}</password>
            </dataSource>
        </connectionSource>
    </appender>

缺一不可。

时间: 2024-08-25 14:14:43

[Logback+slf4j] Mysql DBAppender 正确配置方法 以及错误处理的相关文章

在Eclipse中使用JDBC访问MySQL数据库的配置方法

在Eclipse中使用JDBC访问MySQL数据库的配置方法 分类: DATABASE 数据结构与算法2009-10-10 16:37 5313人阅读 评论(10) 收藏 举报 jdbcmysql数据库eclipsewordpressproperties 这是一篇JDBC的使用入门文章,主要内容是如何在Eclipse中使用MySQL的JDBC驱动程序. 要使用JDBC访问MySQL的数据库,或者是其他类型的数据库,必须要有这种数据库系统的JDBC驱动程序.通常,JDBC驱动程序是由数据库开发商制

windows server 2008 R2 的 FTP 防火墙的正确配置方法

存在问题 FTP搭建完成后,仅本机可以访问,其他机器无法访问. 解决方案 这时,将C:\Windows\System32\svchost.exe添加到例外即可正常访问,如下图所示.将20及21端口添加至高级防火墙中可能也能正常访问.但这并不是正确的方法,正确的方法是:无需单独配置防火墙,直接重新启动计算机即可. 参考资料 http://www.cnblogs.com/dennlu/archive/2012/06/04/2534925.html http://zhcxl.blog.51cto.co

mysql主从同步配置方法和原理

mysql主从复制试验环境:    1.CentOS5.8 x86_64位 采用最小化安装,系统经过了基本优化篇    2.mysql版本: 5.1.73-log ,同台服务器多实例,安装方法参考:mysql多实例安装方法 3.源码包存放位置:/home/oldboy/tools    4.源码包编译安装位置:/application/一.修改master配置    1.修改my.cnf配置         vi /data/3306/my.cnf         egrep "log-bin|

阿里云配置中心nacos单机使用MySQl作为数据源配置方法

Nacos数据持久化: 修改Nacos的数据持久化配置为MySQL存储.默认情况下,Nacos使用嵌入式数据库CMDB实现数据的存储.所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的.为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只要支持MySQL的存储配置Nacos的MySQL存储只需要下面三步: 第一步:安装数据库,版本要求:5.6.5+ (我在centos7.4使用yum安装了mysql-5.7) 第二步:初始化MySQL数据库,数据库初始

阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)

1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 3.错误注意****** 10 1.效果图 2.部署步骤 链接 http://jingyan.baidu.com/article/870c6fc31218e8b03fe4be16.html 首先安装apachecentos可以直接yum安装apache ?. 命令:yum install httpd ? //根据提示,输入Y安装即可成功安装? 然后启动apache,并且设置系统让?Apache 开机自动启动. 命

mysql主备配置方法

主备复制配置 1,主备创建账号 GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO [email protected]’172.16.0.%’ IDENTIFIED BY ‘rep’; 2,配置主库 My.cnf log_bin=mysql-bin server_id=10 innodb_flush_log_at_trx_commit=1 sync_binlog=1 3,配置从库 log_bin=mysql-bin server_id=2 r

Linux平台下mysql的ODBC配置方法

在安装配置之前, 需要先大概了解一下MyODBC的架构. MyODBC体系结构建立在5个组件上,如下图所示: Driver Manager: 负责管理应用程序和驱动程序间的通信, 主要功能包括: 解析DSN (数据源名称,ODBC的数据源名称在ODBC.INI文件中配置), 加载和卸载驱动程序,处理ODBC调用,将其传递给驱动程序. Connector/ODBC(MyODBC驱动程序):   实现ODBC API所提供的功能, 它负责处理ODBC函数调用,将SQL请求提交给MySQL服务器,并将

centos 5.4中mysql主从同步配置方法

安装环境•centos 5.4•mysql 5.1.xx 采用rpm直接安装•xtrabackup 1.2.22 采用rpm直接安装1. Master:/etc/my.cnf  代码如下 复制代码 [mysqld]server-id = 1log-bininnodb_flush_log_at_trx_commit=1sync_binlog=1datadir=/var/lib/mysql character-set-server=utf8init_connect='SET NAMES utf8'

mysql zip 版本配置方法

-\bin 指 C:\Program Files\MySQL\MySQL Server 5.6\bin 1.增加环境变量 "PATH"-"-\bin" 2.修改配置文件 my-default.ini [mysqld] basedir = - datadir = -\data 3.管理员身份运行 cmd cd 到目录 -\bin 安装 mysqld –install 启动服务 net start mysql 登陆 mysql -u root -p