以编程方式将SQL方言设置为Logback数据库附加器 [英] Set sqldialect to logback db appender programmatically
本文介绍了以编程方式将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()方法,其中方言由数据源的驱动程序确定。
这篇关于以编程方式将SQL方言设置为Logback数据库附加器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文