我試圖讓LogBack在C3P0上使用HSQLDB。鑑於我目前的環境,我堅持使用這種配置。我對Log4J代碼有大量投資,並且還需要使用SLF4J Log4J適配器。當我嘗試一個簡單的日誌程序時,它會陷入記錄器配置階段。這裏是我的logback.xml
:Logback - 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");
的 '開始' 出現在控制檯輸出,但沒有其他的。
任何幫助,將不勝感激!
將此迴歸到基本知識,以確保您可以首先將LogBack記錄到控制檯。然後你可以嘗試登錄數據庫。 – SteveD 2009-10-05 19:21:36
如果我從混合中刪除C3P0,並使用DBAppender並直接轉到HSQLDB驅動程序,則會獲得輸入到數據庫中的行。巨大的問題是HSQLDB驅動程序不會重新使用連接。這就是我嘗試使用C3P0連接池的原因。 – 2009-10-05 20:46:45
你有沒有試過聯繫logback-user郵件列表? – Ceki 2009-10-08 07:37:09