如何启动JDBC Debug模式,打印JDBC诊断日志

1.下载Debug版本jar包

首先要下载一个Debug版本的JDBC jar包,Debug版本的jar包命名形式为jdbcX_g.jar(如下图所示),如Oracle11g的Debug版本的jar包为jdbc6_g.jar。点击这里下载:http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html

2.启动Logging模式

第一种方式:设置运行环境变量java -Doracle.jdbc.Trace=true ...(elipse中run->run configurations->arguments一栏)

第二种方式:在程序中控制(建议采用这种方式)

MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
			String loader = Thread.currentThread().getContextClassLoader().toString().replaceAll("[,=:\"]+", "");
			ObjectName pattern = new ObjectName("com.oracle.jdbc:type=diagnosability,name=" + loader);
			ObjectName diag = ((ObjectName[]) (mbs.queryNames(pattern, null).toArray(new ObjectName[0])))[0];
			mbs.setAttribute(diag, new Attribute("LoggingEnabled", true));
			System.out.println("LoggingEnabled = " + mbs.getAttribute(diag, "LoggingEnabled"));
			

如果用的是Oracle 10g,直接执行:

/**oracle 10g 启动方法*/
			oracle.jdbc.driver.OracleLog.setTrace(true); // enable logging
			oracle.jdbc.driver.OracleLog.setTrace(false); // disable logging

3.配置log文件

jdbc使用的是java.util.logging包中的Logger对象打印log。

	/**配置log文件*/
			Handler fh = new FileHandler("./oracle_jdbc_log.log");
			fh.setLevel(Level.ALL);
			fh.setFormatter(new SimpleFormatter());
			Logger.getLogger("").addHandler(fh);
			Logger.getLogger("").setLevel(Level.ALL);

4.下面给大家一个完成的Demo

import javax.management.Attribute;
import javax.management.AttributeNotFoundException;
import javax.management.InstanceNotFoundException;
import javax.management.InvalidAttributeValueException;
import javax.management.MBeanException;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.ReflectionException;
public void run() throws SQLException {
		DriverManager.registerDriver(new OracleDriver());
		//需在加载OracleDriver之后开启log
		enableOracleLogging();
		Connection conn = null;
		Statement stmt = null;
		ResultSet rset = null;
		try {
			conn = getConnection();
			System.out.println("Connection retrieved..");
			stmt = conn.createStatement();
			rset = stmt.executeQuery("select empno from emp");
			while (rset.next()) {
				System.out.println(rset.getInt(1));
			}
		} catch (SQLException sqle) {
			sqle.printStackTrace();
		} finally {
			if (rset != null) {
				rset.close();
			}
			if (stmt != null) {
				stmt.close();
			}
			if (conn != null) {
				conn.close();
			}
		}
	}
public static void enableOracleLogging() {
		try {
			/** 配置log文件 */
			Handler fh = new FileHandler("./oracle_jdbc_log.log");
			fh.setLevel(Level.ALL);
			fh.setFormatter(new SimpleFormatter());
			Logger.getLogger("").addHandler(fh);
			Logger.getLogger("").setLevel(Level.ALL);
			/** oracle 11g 启动方法 */
			MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
			String loader = Thread.currentThread().getContextClassLoader().toString().replaceAll("[,=:\"]+", "");
			ObjectName pattern = new ObjectName("com.oracle.jdbc:type=diagnosability,name=" + loader);
			ObjectName diag = ((ObjectName[]) (mbs.queryNames(pattern, null).toArray(new ObjectName[0])))[0];
			mbs.setAttribute(diag, new Attribute("LoggingEnabled", true));
			System.out.println("LoggingEnabled = " + mbs.getAttribute(diag, "LoggingEnabled"));
			/** oracle 10g 启动方法 */
			// oracle.jdbc.driver.OracleLog.setTrace(true); // enable logging
			// oracle.jdbc.driver.OracleLog.setTrace(false); // disable logging

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

如何启动JDBC Debug模式,打印JDBC诊断日志

时间: 2024-08-04 20:07:54

如何启动JDBC Debug模式,打印JDBC诊断日志的相关文章

怎样启动JDBC Debug模式,打印JDBC诊断日志

1.下载Debug版本号jar包 首先要下载一个Debug版本号的JDBC jar包,Debug版本号的jar包命名形式为jdbcX_g.jar(例如以下图所看到的).如Oracle11g的Debug版本号的jar包为jdbc6_g.jar. 点击这里下载:http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html 2.启动Logging模式 第一种方式:设置执行环境变量java -D

如何让Tomcat以Debug模式启动

有时候我们需要远程调试项目代码,这就需要让Tomcat以Debug模式启动. 环境说明 Windows 7 64位 JDK 8 64位 tomcat-8.0.21 x64.zip 配置方法 第一步:配置JPDA参数 如果Tomcat使用的是JDK 1.5以上版本,那么JPDA可以使用JVMDI,配置方法为: 在tomcat的bin/catalina.bat文件中一开始加入: set JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,sus

idea在debug模式启动非常慢,日志正常debug模式一直在启动中状态

背景 最近在使用idea开发工具时遇到了一个奇怪的现象,使用run tomcat项目可以正常启动,但是使用debug模式启动时,控制台可以正常打印日志,但是进度十分缓慢,也没有任何报出任何错误信息.只是在慢慢的打印日志,耐心等待数分钟后,还是如此. 解决方法 将下图中的断点去掉就可以解决. 原文地址:https://www.cnblogs.com/luao/p/10521325.html

Linux下Debug模式启动Tomcat进行远程调试

J2EE开发各类资源下载清单,  史上最全IT资源,点击进入! 一.      应用场景 在实际的测试过程中,可能会遇到由于程序执行的不间断性,我们无法构造测试场景来验证某个功能的正确性,只有通过代码级的调试才能验证功能是否正确.然而开发本地调试的话,不具有说服力,这时我们测试人员必须连接到linux下的基线版本代码进行远程调试 二.调试步骤 1.部署服务工程到Linux系统下的Tomcat中,本文档重点是远程调式,为了防止文档篇幅累赘,这里就不介绍部署工程了. 2.更改tomcat远程调试端口

Java Dao模式通过JDBC连接数据库的操作

Java程序访问数据库: 1.获取数据库厂商提供的驱动(jdbc接口的实现类) 如ojdbc14.jar——Oracle数据库驱动jar包 mysql-connector-java-5.1.8-bin.jar——MySQL数据库驱动jar包 自己去网上下载就行. 2.使用JDBC的API访问数据库 连接.SQL语句执行.结果 java.sql.Driver:各个数据库厂商需要实现该接口,驱动的标记 java.sql.Connection:封装和数据库的连接 java.sql.Statement:

tomcat启动debug模式,使用eclipse远程调试

生产环境和测试环境可以将tomcat启动设置为debug模式,开始远程监听端口,然后在本地的eclipse中对项目远程调试,即可对指定的服务器中的tomcat进行远程调试. 一.打开tomcat/bin/Catalina.bat文件,在下面位置输入:SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=800

配置Tomcat以Debug模式启动了,但却只能本地用localhost连接调试

配置Tomcat以Debug模式启动了,但却只能本地用localhost连接调试! 在其它电脑上使用telnet也无法连接. 这里只能使用localhost或127.0.0.1, 这是什么原因呢? 问题就出在"address=localhost:8000",如下图: 解决方案: 将localhost改为0.0.0.0,如下图:

debug模式启动provider

debug 模式启动 1 sts中的配置见图片 2 centos中 ./knowledge-start.sh debug win系统ip ./knowledge-start.sh debug 192.168.120.77

tomcat的debug模式启动不了

这个问题可能是由于eclipse和tomcat的交互而产生的,在以debug模式启动tomcat时,发生了读取文件错误,eclipse自动设置了断点,导致tomcat不能正常启动.解决方法如下,打开breakpoints veiw,右键-> Remove all,然后重新用debug方式启动即可.