我正在编写用于创建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?
答案 0 :(得分:1)
您应该在设置数据源后启动连接源。
source.setDataSource(Database.getInstance().getDatasource());
source.start()
这将调用discoverConnectionProperties()方法,其中方言由数据源的驱动程序确定。