1. Download the Debug version jar packageFirst to download a debug version of the JDBC Jar package, the debug version of the jar package is named Jdbcx_g.jar (as shown), such as ORACLE11G's debug version of the jar package is Jdbc6_g.jar. Click here to download: http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html
2. Start logging modeThe first way: Set the Run environment variablejava-doracle.jdbc.trace=true ... (Elipse in Run->run configurations->arguments column)The second way: Control in the program (recommended in this way)
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"));
If you are using Oracle 10g, do this directly:
/**oracle 10g Boot Method */oracle.jdbc.driver.oraclelog.settrace (TRUE); Enable Loggingoracle.jdbc.driver.OracleLog.setTrace (FALSE); Disable logging
3. Configure the log fileJDBC is using the the Logger object in the Java.util.logging package prints the log.
/** Configuration log file */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. Here's a demo for you to complete
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 ());// Need to open logenableoraclelogging () after loading oracledriver; 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 {/** config log file */handler fh = new Filehandler ("./oracle_jdbc_log.log"); Fh.set Level (Level.all); Fh.setformatter (new Simpleformatter ()); Logger.getlogger (""). AddHandler (FH); Logger.getlogger (""). SetLevel (level.all)/** Oracle 11g boot method */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 boot Method */// Oracle.jdbc.driver.OracleLog.setTrace (TRUE); Enable logging//Oracle.jdbc.driver.OracleLog.setTrace (false); Disable logging} catch (Exception e) {e.printstacktrace ();}}