将sqldialect设置为logback db appender programaticaly

时间:2017-04-21 07:18:47

标签: java-8 logback

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

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

TestServer

当我检查另一个使用Logback的项目时,我在我的xml配置中使用了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);

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

1 个答案:

答案 0 :(得分:1)

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

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

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

source