共用方式為


追蹤驅動程式作業

Microsoft SQL Server 2005 JDBC Driver 支援使用追蹤 (或記錄),協助解決在應用程式中使用 JDBC 驅動程式時所發生的問題。為了啟用追蹤,JDBC 驅動程式使用 java.util.logging 中的記錄 API,它們會提供一組類別來建立 LoggerLogRecord 物件。

注意

若是 JDBC 驅動程式隨附的原生元件 (sqljdbc_xa.dll),內建診斷 (BID) 架構會啟用追蹤。如需 BID 的相關資訊,請參閱<SQL Server 2005 中的資料存取追蹤> (英文)。

開發應用程式時,可以呼叫 Logger 物件,進而建立 LogRecord 物件,這些物件接著會傳遞至 Handler 物件以進行處理。LoggerHandler 物件都使用記錄層次,另可選擇使用記錄篩選,以管理要處理哪些 LogRecords。完成記錄作業時,Handler 物件可以選擇性地使用 Formatter 物件,以發行記錄資訊。

根據預設,java.util.logging 架構會將其輸出寫入到檔案。此輸出記錄檔必須將寫入權限授與給執行 JDBC 驅動程式的內容。

注意

如需使用各種記錄物件以進行程式追蹤的詳細資訊,請參閱 Sun Microsystems 網站上的<Java 記錄 API>文件 (英文)。

下列章節說明記錄層次以及可以記錄的類別目錄,並提供如何在應用程式中啟用追蹤的相關資訊。

記錄層次

所建立的每則記錄訊息都有相關聯的記錄層次。記錄層次用於判斷記錄訊息的重要性,是由 java.util.logging 中的 Level 類別來定義。下表說明每個可用的記錄層次。

名稱 描述

SEVERE

表示嚴重錯誤,這是最高的記錄層次。在 JDBC 驅動程式中,這個層次用於報告錯誤和例外狀況。

WARNING

表示潛在問題。

INFO

提供參考訊息。

CONFIG

提供組態訊息。在 JDBC 驅動程式中,這個層次用於全域範圍的組態設定。

FINE

提供追蹤資訊。在 JDBC 驅動程式中,大部份的記錄訊息都使用此層級。

FINER

提供詳細的追蹤資訊。

FINEST

提供非常詳細的追蹤資訊。這是最低的記錄層次。

OFF

關閉記錄。

ALL

啟用記錄所有訊息。

記錄類別目錄

建立 Logger 物件時,必須告知物件您有興趣從中取得記錄資訊的具名實體或類別目錄。JDBC 驅動程式支援下列的記錄類別目錄。

名稱 描述

SQLServerConnection

記錄 SQLServerConnection 類別中的訊息。預設的記錄層次是 FINE。

SQLServerStatement

記錄 SQLServerStatement 類別中的訊息。預設的記錄層次是 FINE。

TDS.DATA

記錄 TDS 訊息。這個類別目錄會建立非常詳細的訊息,並只能透過將記錄層次設為 FINEST 而啟用。

TDS.TOKEN

記錄 TDS 訊息。這個類別目錄只會記錄 TDS 封包中的 Token,跟 TDS.DATA 類別目錄比起來較不詳細。

XA

記錄 SQLServerXAConnectionSQLServerXAResourceSQLServerXADataSource 類別中所有 XA 交易的訊息。預設的記錄層次是 FINE。

SQLServerDataSource

記錄 SQLServerDataSourceSQLServerConnectionPoolDataSourceSQLServerPooledConnection 類別中的訊息。預設的記錄層次是 FINE。

以程式設計方式啟用追蹤

建立 Logger 物件並指出要記錄的類別目錄,就能以程式設計的方式啟用追蹤。例如,下列程式碼會顯示如何啟用 SQL 陳述式的記錄:

Logger logger = Logger.getLogger("com.microsoft.sqlserver.jdbc.SQLServerStatement");
logger.setLevel(Level.FINE);

若要關閉程式碼中的記錄,請使用下列:

logger.setLevel(Level.OFF);

若要記錄所有可用的類別目錄,請使用下列:

Logger logger = Logger.getLogger("com.microsoft.sqlserver.jdbc");
logger.setLevel(Level.FINE);

若要停止記錄特定的類別目錄,請使用下列:

Logger logger = Logger.getLogger("com.microsoft.sqlserver.jdbc.TDS");
logger.setLevel(Level.OFF);

使用 Logging.Properties 檔案來啟用追蹤

您也可以使用logging.properties檔來啟用追蹤,此檔案位於 Java Runtime Environment (JRE) 安裝的lib目錄中。可以用這個檔案來設定當啟用追蹤時,所要使用的記錄器和處理常式預設值。

下列是可在 logging.properties 檔案中進行的設定範例:

   # Specify the handlers to create in the root logger
   # (all loggers are children of the root logger).
   # The following creates two handlers.
   handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler

   # Set the default logging level for the root logger.
   .level = OFF

   # Set the default logging level for new ConsoleHandler instances.
   java.util.logging.ConsoleHandler.level = FINE

   # Set the default logging level for new FileHandler instances.
   java.util.logging.FileHandler.level = OFF

   # Set the default formatter for new ConsoleHandler instances.
   java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

   # Set the default logging level for the logger named ConnectionPool.
   ConnectionPool.level = OFF

注意

您可以使用 LogManager 物件 (屬於 java.util.logging 的一部分),來設定 logging.properties 檔案的屬性。

另請參閱

其他資源

診斷 JDBC Driver 的問題