【问题标题】:Logback - C3P0 and HSQLDBLogback - C3P0 和 HSQLDB
【发布时间】:2009-10-05 19:16:11
【问题描述】:

我正在尝试让 LogBack 使用带有 C3P0 的 HSQLDB。鉴于我当前的环境,我目前坚持使用此配置。我对 Log4J 代码进行了大量投资,并且还需要使用 SLF4J Log4J 适配器。当我尝试一个简单的日志记录程序时,它卡在了记录器配置阶段。这是我的logback.xml

<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

这是我的代码的 sn-p:

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

“开始”出现在控制台输出中,但没有其他内容。

任何帮助将不胜感激!

【问题讨论】:

  • 把这个回归基础,以确保您可以首先将 LogBack 日志记录到控制台。然后你可以尝试记录到数据库。
  • 如果我从混合中删除 C3P0 并使用 DBAppender 并直接到 HSQLDB 驱动程序,我会在数据库中输入行。最大的问题是 HSQLDB 驱动程序不重用连接。这就是我尝试 C3P0 连接池的原因。
  • 您是否尝试过联系 logback-user 邮件列表?

标签: log4j hsqldb c3p0 logback


【解决方案1】:

你得到了什么status messages?您可以通过在配置文件中添加以下行来列出它们:

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

由于您上面的配置文件格式不正确,因此难以阅读。

【讨论】:

    【解决方案2】:

    我将StatusListener 添加到logback.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”,我会看到与数据库的连接,但没有任何活动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2012-06-30
      • 2013-03-06
      • 1970-01-01
      相关资源
      最近更新 更多