2009-10-05 36 views
1

我試圖讓LogBack在C3P0上使用HSQLDB。鑑於我目前的環境,我堅持使用這種配置。我對Log4J代碼有大量投資,並且還需要使用SLF4J Log4J適配器。當我嘗試一個簡單的日誌程序時,它會陷入記錄器配置階段。這裏是我的logback.xmlLogback - C3P0和HSQLDB

<configuration> 
    <appender name="DB" class="ch.qos.logback.classic.db.DBAppender"> 
     <connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource"> 
      <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource"> 
       <driverClass>org.hsqldb.jdbcDriver</driverClass> 
       <jdbcUrl>jdbc:hsqldb:hsql://localhost:9001/mid_logs</jdbcUrl> 
       <user>sa</user> 
       <password>sa</password> 
      </dataSource> 
     </connectionSource> 
    </appender> 
    <root level="debug"> 
     <appender-ref ref="DB" /> 
    </root> 
</configuration> 

我的類路徑是:

bin/.;lib/hsqldb.jar;lib/log4j-over-slf4j-1.5.8.jar;lib/logback-access-0.9.17.jar;lib/logback-classic-0.9.17.jar;lib/logback-core-0.9.17.jar;lib/slf4j-api-1.5.8.jar;lib/slf4j-log4j12-1.5.8.jar;lib/c3p0-0.9.1.2.jar 

這裏是我的代碼片段:

System.out.println("Starting"); 
Logger logger = Logger.getLogger(TestLogging.class); 
System.out.println("got Logger"); 

的 '開始' 出現在控制檯輸出,但沒有其他的。

任何幫助,將不勝感激!

+0

將此迴歸到基本知識,以確保您可以首先將LogBack記錄到控制檯。然後你可以嘗試登錄數據庫。 – SteveD 2009-10-05 19:21:36

+0

如果我從混合中刪除C3P0,並使用DBAppender並直接轉到HSQLDB驅動程序,則會獲得輸入到數據庫中的行。巨大的問題是HSQLDB驅動程序不會重新使用連接。這就是我嘗試使用C3P0連接池的原因。 – 2009-10-05 20:46:45

+0

你有沒有試過聯繫logback-user郵件列表? – Ceki 2009-10-08 07:37:09

回答

0

你會得到什麼status messages?你可以讓他們通過添加下面的行放在configuraton文件中列出:

<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" /> 

由於上述配置文件中沒有很好地格式化的,使得它難以閱讀。

0

我加入了StatusListenerlogback.xml文件,這裏是輸出:

07:45:12,816 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.classic.db.DBAppender] 
07:45:12,832 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [DB] 
07:45:12,848 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Pushing component [connectionSource] on top of the object stack. 
07:45:13,129 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Pushing component [dataSource] on top of the object stack. 

如果我做了「netstat -a -n」我看到數據庫的連接,但沒有任何活動。