📄 logwriter.java
字号:
} //-----------------------------transient state-------------------------------- private void traceColumnMetaData(String header, ColumnMetaData columnMetaData) { if (traceSuspended()) { return; } try { synchronized (printWriter_) { for (int column = 1; column <= columnMetaData.getColumnCount(); column++) { dncprint(header, "Column " + column + ": { "); printWriter_.print("label=" + columnMetaData.getColumnLabel(column) + ", "); printWriter_.print("name=" + columnMetaData.getColumnName(column) + ", "); printWriter_.print("type name=" + columnMetaData.getColumnTypeName(column) + ", "); printWriter_.print("type=" + columnMetaData.getColumnType(column) + ", "); printWriter_.print("nullable=" + columnMetaData.isNullable(column) + ", "); printWriter_.print("precision=" + columnMetaData.getPrecision(column) + ", "); printWriter_.print("scale=" + columnMetaData.getScale(column) + ", "); printWriter_.print("schema name=" + columnMetaData.getSchemaName(column) + ", "); printWriter_.print("table name=" + columnMetaData.getTableName(column) + ", "); printWriter_.print("writable=" + columnMetaData.isWritable(column) + ", "); printWriter_.print("sqlPrecision=" + (columnMetaData.sqlPrecision_ == null ? "<null>" : "" + columnMetaData.sqlPrecision_[column - 1]) + ", "); printWriter_.print("sqlScale=" + (columnMetaData.sqlScale_ == null ? "<null>" : "" + columnMetaData.sqlScale_[column - 1]) + ", "); printWriter_.print("sqlLength=" + (columnMetaData.sqlLength_ == null ? "<null>" : "" + columnMetaData.sqlLength_[column - 1]) + ", "); printWriter_.print("sqlType=" + (columnMetaData.sqlType_ == null ? "<null>" : "" + columnMetaData.sqlType_[column - 1]) + ", "); printWriter_.print("sqlCcsid=" + (columnMetaData.sqlCcsid_ == null ? "<null>" : "" + columnMetaData.sqlCcsid_[column - 1]) + ", "); printWriter_.print("sqlName=" + (columnMetaData.sqlName_ == null ? "<null>" : columnMetaData.sqlName_[column - 1]) + ", "); printWriter_.print("sqlLabel=" + (columnMetaData.sqlLabel_ == null ? "<null>" : columnMetaData.sqlLabel_[column - 1]) + ", "); printWriter_.print("sqlUnnamed=" + (columnMetaData.sqlUnnamed_ == null ? "<null>" : "" + columnMetaData.sqlUnnamed_[column - 1]) + ", "); printWriter_.print("sqlComment=" + (columnMetaData.sqlComment_ == null ? "<null>" : columnMetaData.sqlComment_[column - 1]) + ", "); printWriter_.print("sqlxKeymem=" + (columnMetaData.sqlxKeymem_ == null ? "<null>" : "" + columnMetaData.sqlxKeymem_[column - 1]) + ", "); printWriter_.print("sqlxGenerated=" + (columnMetaData.sqlxGenerated_ == null ? "<null>" : "" + columnMetaData.sqlxGenerated_[column - 1]) + ", "); printWriter_.print("sqlxParmmode=" + (columnMetaData.sqlxParmmode_ == null ? "<null>" : "" + columnMetaData.sqlxParmmode_[column - 1]) + ", "); printWriter_.print("sqlxCorname=" + (columnMetaData.sqlxCorname_ == null ? "<null>" : columnMetaData.sqlxCorname_[column - 1]) + ", "); printWriter_.print("sqlxName=" + (columnMetaData.sqlxName_ == null ? "<null>" : columnMetaData.sqlxName_[column - 1]) + ", "); printWriter_.print("sqlxBasename=" + (columnMetaData.sqlxBasename_ == null ? "<null>" : columnMetaData.sqlxBasename_[column - 1]) + ", "); printWriter_.print("sqlxUpdatable=" + (columnMetaData.sqlxUpdatable_ == null ? "<null>" : "" + columnMetaData.sqlxUpdatable_[column - 1]) + ", "); printWriter_.print("sqlxSchema=" + (columnMetaData.sqlxSchema_ == null ? "<null>" : columnMetaData.sqlxSchema_[column - 1]) + ", "); printWriter_.print("sqlxRdbnam=" + (columnMetaData.sqlxRdbnam_ == null ? "<null>" : columnMetaData.sqlxRdbnam_[column - 1]) + ", "); printWriter_.print("internal type=" + columnMetaData.types_[column - 1] + ", "); printWriter_.println(" }"); } dncprint(header, "{ "); printWriter_.print("sqldHold=" + columnMetaData.sqldHold_ + ", "); printWriter_.print("sqldReturn=" + columnMetaData.sqldReturn_ + ", "); printWriter_.print("sqldScroll=" + columnMetaData.sqldScroll_ + ", "); printWriter_.print("sqldSensitive=" + columnMetaData.sqldSensitive_ + ", "); printWriter_.print("sqldFcode=" + columnMetaData.sqldFcode_ + ", "); printWriter_.print("sqldKeytype=" + columnMetaData.sqldKeytype_ + ", "); printWriter_.print("sqldRdbnam=" + columnMetaData.sqldRdbnam_ + ", "); printWriter_.print("sqldSchema=" + columnMetaData.sqldSchema_); printWriter_.println(" }"); printWriter_.flush(); } } catch (SqlException e) { dncprintln(header, "Encountered an SQL exception while trying to trace column meta data"); } } // ---------------------- 3-way tracing connects ----------------------------- // Including protocol manager levels, and driver configuration // Jdbc 2 public void traceConnectEntry(ClientDataSource dataSource) { if (traceSuspended()) { return; } if (loggingEnabled(ClientDataSource.TRACE_DRIVER_CONFIGURATION)) { traceDriverConfigurationJdbc2(); } if (loggingEnabled(ClientDataSource.TRACE_CONNECTS)) { traceConnectsEntry(dataSource); } } // Jdbc 1 public void traceConnectEntry(String server, int port, String database, java.util.Properties properties) { if (traceSuspended()) { return; } if (loggingEnabled(ClientDataSource.TRACE_DRIVER_CONFIGURATION)) { traceDriverConfigurationJdbc1(); } if (loggingEnabled(ClientDataSource.TRACE_CONNECTS)) { traceConnectsEntry(server, port, database, properties); } } public void traceConnectResetEntry(Object instance, LogWriter logWriter, String user, ClientDataSource ds) { if (traceSuspended()) { return; } traceEntry(instance, "reset", logWriter, user, "<escaped>", ds); if (loggingEnabled(ClientDataSource.TRACE_CONNECTS)) { traceConnectsResetEntry(ds); } } public void traceConnectExit(Connection connection) { if (traceSuspended()) { return; } if (loggingEnabled(ClientDataSource.TRACE_CONNECTS)) { traceConnectsExit(connection); } } public void traceConnectResetExit(Connection connection) { if (traceSuspended()) { return; } if (loggingEnabled(ClientDataSource.TRACE_CONNECTS)) { traceConnectsResetExit(connection); } } // ---------------------- tracing connects ----------------------------------- private void traceConnectsResetEntry(ClientDataSource dataSource) { if (traceSuspended()) { return; } try { traceConnectsResetEntry(dataSource.getServerName(), dataSource.getPortNumber(), dataSource.getDatabaseName(), dataSource.getProperties()); } catch (java.sql.SQLException e) { dncprintln("Encountered an SQL exception while trying to trace connection reset entry"); } } private void traceConnectsEntry(ClientDataSource dataSource) { if (traceSuspended()) { return; } try { traceConnectsEntry(dataSource.getServerName(), dataSource.getPortNumber(), dataSource.getDatabaseName(), dataSource.getProperties()); } catch (java.sql.SQLException e) { dncprintln("Encountered an SQL exception while trying to trace connection entry"); } } private void traceConnectsResetEntry(String server, int port, String database, java.util.Properties properties) { if (traceSuspended()) { return; } dncprintln("BEGIN TRACE_CONNECT_RESET"); dncprintln("Connection reset requested for " + server + ":" + port + "/" + database); dncprint("Using properties: "); writeProperties(properties); dncprintln("END TRACE_CONNECT_RESET"); } private void traceConnectsEntry(String server, int port, String database, java.util.Properties properties) { if (traceSuspended()) { return; } synchronized (printWriter_) { dncprintln("BEGIN TRACE_CONNECTS"); dncprintln("Attempting connection to " + server + ":" + port + "/" + database); dncprint("Using properties: "); writeProperties(properties); dncprintln("END TRACE_CONNECTS"); } } // Specialized by NetLogWriter.traceConnectsExit() public void traceConnectsExit(Connection c) { if (traceSuspended()) { return; } synchronized (printWriter_) { String header = "[Connection@" + Integer.toHexString(c.hashCode()) + "]"; try { dncprintln(header, "BEGIN TRACE_CONNECTS"); dncprintln(header, "Successfully connected to server " + c.databaseMetaData_.getURL()); dncprintln(header, "User: " + c.databaseMetaData_.getUserName()); dncprintln(header, "Database product name: " + c.databaseMetaData_.getDatabaseProductName()); dncprintln(header, "Database product version: " + c.databaseMetaData_.getDatabaseProductVersion()); dncprintln(header, "Driver name: " + c.databaseMetaData_.getDriverName()); dncprintln(header, "Driver version: " + c.databaseMetaData_.getDriverVersion()); dncprintln(header, "END TRACE_CONNECTS"); } catch (java.sql.SQLException e) { dncprintln(header, "Encountered an SQL exception while trying to trace connection exit"); dncprintln(header, "END TRACE_CONNECTS"); } } } public void traceConnectsResetExit(org.apache.derby.client.am.Connection c) { if (traceSuspended()) { return; } synchronized (printWriter_) { String header = "[Connection@" + Integer.toHexString(c.hashCode()) + "]"; try { dncprintln(header, "BEGIN TRACE_CONNECT_RESET"); dncprintln(header, "Successfully reset connection to server " + c.databaseMetaData_.getURL()); dncprintln(header, "User: " + c.databaseMetaData_.getUserName()); dncprintln(header, "Database product name: " + c.databaseMetaData_.getDatabaseProductName()); dncprintln(header, "Database product version: " + c.databaseMetaData_.getDatabaseProductVersion()); dncprintln(header, "Driver name: " + c.databaseMetaData_.getDriverName()); dncprintln(header, "Driver version: " + c.databaseMetaData_.getDriverVersion()); dncprintln(header, "END TRACE_CONNECT_RESET"); } catch (java.sql.SQLException e) { dncprintln(header, "Encountered an SQL exception while trying to trace connection reset exit"); dncprintln(header, "END TRACE_CONNECT_RESET"); } } } // properties.toString() will print out passwords, // so this method was written to escape the password property value. // printWriter_ synchronized by caller. private void writeProperties(java.util.Properties properties) { printWriter_.print("{ "); for (java.util.Iterator i = properties.entrySet().iterator(); i.hasNext();) { java.util.Map.Entry e = (java.util.Map.Entry) (i.next()); if ("password".equals(e.getKey())) { printWriter_.print("password=" + escapePassword((String) e.getValue())); } else { printWriter_.print(e.getKey() + "=" + e.getValue()); } if (i.hasNext()) { printWriter_.print(", "); } } printWriter_.println(" }"); printWriter_.flush(); } private String escapePassword(String pw) { StringBuffer sb = new StringBuffer(pw); for (int j = 0; j < pw.length(); j++) { sb.setCharAt(j, '*'); } return sb.toString(); } //-------------------------tracing driver configuration----------------------- private void traceDriverConfigurationJdbc2() { if (traceSuspended()) { return; } synchronized (printWriter_) { if (!driverConfigurationHasBeenWrittenToJdbc2Stream_) { writeDriverConfiguration(); driverConfigurationHasBeenWrittenToJdbc2Stream_ = true; } } } private void traceDriverConfigurationJdbc1() { if (traceSuspended()) { return; } synchronized (printWriter_) { if (!driverConfigurationHasBeenWrittenToJdbc1Stream_) { writeDriverConfiguration(); driverConfigurationHasBeenWrittenToJdbc1Stream_ = true; } } } public void writeDriverConfiguration() { org.apache.derby.client.am.Version.writeDriverConfiguration(printWriter_); } public static java.io.PrintWriter getPrintWriter(String fileName, boolean fileAppend) throws SqlException { try { java.io.PrintWriter printWriter = null; String fileCanonicalPath = new java.io.File(fileName).getCanonicalPath(); printWriter = new java.io.PrintWriter(new java.io.BufferedOutputStream(new java.io.FileOutputStream(fileCanonicalPath, fileAppend), 4096), true); return printWriter; } catch (java.io.IOException e) { throw new SqlException(null, "Unable to open file " + fileName); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -