首页 新闻 会员 周边

logback怎么异步日志到oracle数据库中?????

0
悬赏园豆:100 [已解决问题] 解决于 2014-09-30 13:33
<appender name="db-classic-oracle" class="ch.qos.logback.classic.db.DBAppender">  
        <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">  
            <dataSource class="org.apache.commons.dbcp.BasicDataSource">  
                <driverClassName>oracle.jdbc.driver.OracleDriver</driverClassName>  
                <url>jdbc:oracle:thin:@localhost:1521:ZYD</url>  
                <user>scott</user>  
                <password>tiger</password>  
            </dataSource>  
        </connectionSource>  
    </appender>
    <appender-ref ref="db-classic-oracle" />
以上是按官方文档配置的,但启动服务器后就报错!!!!
错误如下:

10:38:47,746 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@42:16 - RuntimeException in Action for tag [appender] java.lang.IllegalStateException: DBAppender cannot function if the JDBC driver does not support getGeneratedKeys method *and* without a specific SQL dialect
at java.lang.IllegalStateException: DBAppender cannot function if the JDBC driver does not support getGeneratedKeys method *and* without a specific SQL dialect


java菜鸟---板砖的主页 java菜鸟---板砖 | 初学一级 | 园豆:116
提问于:2014-09-30 11:01
< >
分享
最佳答案
0

貌似是你的数据库方言配置错了。

收获园豆:100
幻天芒 | 高人七级 |园豆:37175 | 2014-09-30 11:15

那怎么配置呢

??

java菜鸟---板砖 | 园豆:116 (初学一级) | 2014-09-30 11:16

@血屠: 我没用过哈,你跟着官方的配置文档配置下呗,同时注意下你自己的包版本和文档的版本是否对应。

幻天芒 | 园豆:37175 (高人七级) | 2014-09-30 11:18

@血屠: 检查下你的connectionSource节点是否配置错了。

试下如下内容呢:<connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">

幻天芒 | 园豆:37175 (高人七级) | 2014-09-30 11:21

@幻天芒: 还是不行,报错更厉害了……

java菜鸟---板砖 | 园豆:116 (初学一级) | 2014-09-30 11:23

@血屠: 那你得自己查查了,主要是官方文档。

幻天芒 | 园豆:37175 (高人七级) | 2014-09-30 11:52

@幻天芒: 终于解决了……加了个 方言

<sqlDialect class="ch.qos.logback.core.db.dialect.OracleDialect" />

然后把<driverClassName>oracle.jdbc.driver.OracleDriver</driverClassName>

改成了<driverClass>oracle.jdbc.driver.OracleDriver</driverClass>

java菜鸟---板砖 | 园豆:116 (初学一级) | 2014-09-30 13:31

@血屠: 不错,是参考文档来的吗?博客园搞java的相对比较少,呵呵~

幻天芒 | 园豆:37175 (高人七级) | 2014-09-30 13:39

@幻天芒: 我去Stack overflow网站上看到的,终于解决了……

java菜鸟---板砖 | 园豆:116 (初学一级) | 2014-09-30 13:40

@血屠: 这网站不错,呵呵~

幻天芒 | 园豆:37175 (高人七级) | 2014-09-30 13:46
其他回答(1)
0

正确配置应该是

<!-- 将日志存储到oracle数据库中 -->
    <appender name="db-classic-oracle" class="ch.qos.logback.classic.db.DBAppender">  
        <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">  
            <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">                 
                <driverClass>oracle.jdbc.driver.OracleDriver</driverClass>  
                <url>jdbc:oracle:thin:@localhost:1521:ZYD</url>  
                <user>scott</user>  
                <password>tiger</password>
                <sqlDialect class="ch.qos.logback.core.db.dialect.OracleDialect" />   
            </dataSource>  
        </connectionSource>
        <sqlDialect class="ch.qos.logback.core.db.dialect.OracleDialect" />  
    </appender> 
java菜鸟---板砖 | 园豆:116 (初学一级) | 2014-09-30 13:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册