2017-04-21 24 views
0

私の接続プールのデータソースを使用するDBAppenderを作成するためのソースコードを書いています。 DBAppenderを起動すると、JDBCドライバがgetGeneratedKeysメソッドを特定のSQLダイアレクトなしでサポートしていないと、DBAppenderは機能しません。だから、実装にsqlDialectを追加したいが、これを行う方法が見つからない。私はLogbackを使用して、私は私のxml構成で<sqlDialect class="ch.qos.logback.core.db.dialect.MsSQLDialect" />を使用し、別のプロジェクトをチェックするとsqldialectをlogback db appenderに設定してください。

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); 

ロガーにアペンダを追加するためのコードは次のようになります。

アペンダの実装にsqlDialectを追加する方法はありますか?

答えて

1

データソースを設定したら、接続ソースを開始する必要があります。

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

これは、方言がデータソースのドライバによって決定されるdiscoverConnectionProperties()メソッドを呼び出します。

source

関連する問題