以编程方式将SQL方言设置为Logback数据库附加器 [英] Set sqldialect to logback db appender programmatically

查看:22
本文介绍了以编程方式将SQL方言设置为Logback数据库附加器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写用于创建DBAppender的源代码,以使用我的连接池的数据源。现在,当我启动DBAppender时,我收到错误消息"如果JDBC驱动程序不支持没有特定SQL方言的getGeneratedKeys方法,则DBAppender无法运行"。因此,我想将sqlDialect添加到我的实现中,但找不到这样做的方法。

将附加器添加到记录器的代码如下:

LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();

DataSourceConnectionSource source = new DataSourceConnectionSource();

source.setDataSource(Database.getInstance().getDatasource());

DBAppender dbAppender = new DBAppender();
dbAppender.setName("db");
dbAppender.setConnectionSource(source);
dbAppender.setContext(lc);      
dbAppender.start();

Logger logger = (Logger) LoggerFactory.getLogger(Loggerutils.class);
logger.addAppender(dbAppender);
logger.setLevel(Level.DEBUG);

当我使用Logback检查另一个项目时,我在我的XML配置中使用了<sqlDialect class="ch.qos.logback.core.db.dialect.MsSQLDialect" />

有没有办法在我的附加器实现中添加sqlDialect?

推荐答案

您应该在设置数据源后启动连接源。

    source.setDataSource(Database.getInstance().getDatasource());
    source.start()

这将调用discoverConnectionProperties()方法,其中方言由数据源的驱动程序确定。

source

这篇关于以编程方式将SQL方言设置为Logback数据库附加器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆