`

将log4j的输出等级调整到Dubug出现的问题

阅读更多

先贴出来异常的部分代码:

 

java.lang.Exception: DEBUG STACK TRACE for PoolBackedDataSource.close().
    at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.close(AbstractPoolBackedDataSource.java:417)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   	......
java.lang.Exception: DEBUG -- CLOSE BY CLIENT STACK TRACE
    at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:566)
    at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:234)
   	.....
 

 

 

具体到这个问题里,就是来自Spring关于数据源的那个配置文件。

 

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
//略去数据源相关信息的配置
</bean>
 

 

 

      Spring在读取这个配置文件以后,需要根据这些信息来实例化一些类,然后内部再根据中间的那些配置信息来实际构造数据源。

      可是来了个问题。不能保证这里的ComboPooledDataSource数据源一定是可用的,也不能保证close方法一定能关闭连接,对吧?Spring本身不能检查这个类是否真实有效,毫无Bug。实际上呢,也检查不了。同样的,close方法是否有效,也需要进行检查。

 

 

java.sql.Connection
public interface Connection extends Wrapper
 

任何一个JDBC数据库连接的实现类都应该实现这个接口的全部方法。比如,close。API里的描述是,立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们被自动释放。

 

 

     虽然API规定了close是关闭连接释放资源的。但这只是你接口的一厢情愿。也许人家实现厂家觉得close方法不够帅,要改成closeConnection。那。。。Spring总不好傻傻的去死扣close方法来关闭连接吧?虽然这方法必须实现,但是可没说一定要有内容啊。如果是空方法呢?所以有了destroy-method这个配置项的出现。

 

  总结:

     当不能确定destory-method的情况下,把该项删除,由程序自主选择关闭方法,这样Debug就不会报错了.

 

 

分享到:
评论
2 楼 793059909 2013-12-06  
http://www.oschina.net/question/137649_71699
1 楼 Wu_Jiang 2013-12-06  
赞一个~~

相关推荐

    log4j(内含log4j的jar包和log4j的配置文件:有DEBUG和INFO两种)

    Log4j的主要优势在于它的可配置性,可以通过配置文件来调整日志的输出行为,包括日志级别、输出目的地、格式等。 **日志级别** 在Log4j中,日志级别定义了输出日志的详细程度,常见的级别有OFF、FATAL、ERROR、...

    log4j配置 输出日志 案例

    本文将深入讲解如何配置log4j以实现日志输出到控制台和文件,并提供相关代码实例和案例分析。** ### 一、Log4j简介 Log4j是Apache组织开发的一个开源项目,用于生成日志信息。它提供了灵活的配置方式,支持多种输出...

    log4j-控制指定类,包的日志级别:log4j-demo.zip

    Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的功能,包括控制日志级别、定制日志格式、支持多种输出方式等。本示例将详细介绍如何使用Log4j来控制指定类或包的日志级别。 首先,我们来理解日志级别的...

    log4j多文件输出打印

    此外,Log4j还支持自定义日志级别,以及根据日志级别动态调整输出策略。例如,我们可以在配置文件中定义一个自定义的日志级别`DEBUG2`,并在代码中使用这个级别: ```properties log4j.additivity.DEBUG2=false log...

    mybatis,log4j打印日志到后台和文件

    总结,通过以上步骤,你已成功配置了 MyBatis 使用 Log4j 来记录日志,同时将日志输出到后台控制台和文件,这有助于在开发和调试过程中追踪问题,提高代码的可维护性。记得根据实际需求调整日志级别和输出格式,以...

    log4j按功能保存日志

    在“log4j按功能保存日志”的场景中,我们通常会利用Log4j的配置灵活性,将不同功能的日志分别写入不同的文件,以便于后期分析、排查问题和监控系统状态。 1. **Log4j基本概念** - **Logger**: 日志记录器,是Log4...

    log4j输出多个自定义路径的日志文件小例子

    Appender是Log4j中负责将日志信息输出到指定目的地的组件,例如文件、控制台、网络等。以下是一个简单的`log4j.properties`配置示例: ```properties # 配置文件开头 log4j.rootLogger=DEBUG, appender1, appender2...

    log4j(二):动态配置日志输出路径

    这个文件定义了Log4j的行为,包括设置日志级别(如DEBUG, INFO, WARN, ERROR, FATAL),定义Appender,以及指定Appender的输出目标。例如: ```properties # log4j.properties 示例 log4j.rootLogger=DEBUG, FILE ...

    log4j2.xml记录日志到到数据库

    本示例将详细介绍如何配置并使用Log4j2将日志信息记录到MySQL数据库中。 首先,我们要理解Log4j2的核心概念。Log4j2主要包括以下几个组件: 1. **配置文件**:如`log4j2.xml`,这是Log4j2的配置中心,定义了日志...

    log4j示例项目

    Log4j允许我们在运行时动态调整日志级别,避免不必要的日志输出,提高系统性能。 **6. 扩展与集成** 除了基本的日志功能,Log4j还支持与其他日志框架(如Logback)的互操作,以及与Spring等框架的集成,提供更强大...

    log4j的日志级别的调整

    本篇我们将深入探讨如何调整log4j的日志级别,以便更好地管理和控制应用程序的日志输出。 首先,我们要理解日志级别在log4j中的含义。Log4j提供了多个预定义的日志级别,按照严重性从低到高排序,包括TRACE、DEBUG...

    示范如何在android工程中使用log4j记录日志

    5. **定制日志级别和输出**:根据需要,可以通过修改log4j2.xml配置文件来调整日志级别,或者添加其他Appender,比如文件Appender,将日志记录到特定文件中。 6. **性能考虑**:在生产环境中,通常会将日志级别设置...

    打log4j日志-ibatis的sql输出

    Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,在这里你可以设置不同级别的日志输出,例如DEBUG、INFO、WARN、ERROR等。 对于Ibatis,这是一个轻量级的持久层框架,它将SQL语句与Java代码分离,提供了...

    log4j使用教程(详解)

    Log4j是一个基于Java的日志记录工具,它提供了灵活的控制来记录日志信息,包括日志级别(DEBUG、INFO、WARN、ERROR、FATAL)、日志输出格式以及输出目标(控制台、文件、网络等)。 2. **日志级别** - DEBUG:...

    log4j-1.2.16下载

    Log4j的主要优点在于其可配置性,允许开发者根据需要调整日志级别、输出格式和存储位置,以满足不同项目的需求。 二、Log4j-1.2.16核心组件 1. **Logger**:这是Log4j的基本元素,负责生成日志事件。开发者可以...

    log4j.properties 的使用详解(含log4j.properties)

    1. **全局配置**:设置默认的logger级别,例如`log4j.rootLogger=DEBUG, FILE`,表示根logger的级别为DEBUG,并将日志输出到FILE指定的appender。 2. **Appender配置**:定义日志输出的目的地,如控制台、文件、...

    log4j2在项目中的配置,对不同级别的日志进行不同文件的存储

    在Java开发中,日志记录是一项至关...总的来说,Log4j2的配置灵活性很高,可以根据项目需求调整输出级别、格式、存储路径等。通过上述配置,我们实现了根据日志级别区分存储的目标,从而更好地管理项目中的日志信息。

    log4j实用配置扩展

    #### 四、log4j的核心组件 log4j的核心组件主要包括**Loggers(记录器)**、**Appenders(输出源)**和**Layouts(布局)**。 1. **Loggers (记录器)**:负责生成日志信息,并决定是否发送日志信息到Appenders。记录器...

    无法打出log4j日志的问题排查

    Log4j通过配置文件(通常是log4j.properties或log4j.xml)来设定日志输出级别、格式、目的地等参数。如果日志没有按预期输出,我们需要检查以下几个方面: 1. **配置文件**:确认配置文件是否正确包含在项目中,...

    log4j jar包

    4. **Level/Priority**:用于设置日志信息的级别,如DEBUG、INFO、WARN、ERROR和FATAL,不同级别的日志信息可以根据需要过滤和输出。 三、配置与使用 Log4j的配置主要通过配置文件`log4j.properties`或`log4j.xml`...

Global site tag (gtag.js) - Google Analytics