我试图让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