記錄活動
根據預設,由 SQL Server Driver for PHP 產生的錯誤和警告並不會記錄下來。若要開啟記錄,您可以使用 sqlsrv_configure 函數或是改變 php.ini 檔。您可以記錄有關初始化、連接、陳述式或錯誤函數的活動。您也可以指定是要記錄錯誤、警告、通知還是三種都記錄。
開啟記錄
若要開啟記錄,請使用 sqlsrv_configure 函數來指定 LogSubsystems 設定的值。例如,以下這一行程式碼會設定驅動程式記錄有關連接的活動:
sqlsrv_configure("LogSubsystems", SQLSRV_LOG_SYSTEM_CONN);
下表描述可當做 LogSubsystems 設定之值使用的常數:
值 (括號中相同的整數) | 描述 |
---|---|
SQLSRV_LOG_SYSTEM_ALL (-1) |
開啟所有子系統的記錄。 |
SQLSRV_LOG_SYSTEM_OFF (0) |
關閉記錄。 |
SQLSRV_LOG_SYSTEM_INIT (1) |
開啟初始化活動的記錄。 |
SQLSRV_LOG_SYSTEM_CONN (2) |
開啟連接活動的記錄。 |
SQLSRV_LOG_SYSTEM_STMT (4) |
開啟陳述式活動的記錄。 |
SQLSRV_LOG_SYSTEM_UTIL (8) |
開啟錯誤函數活動的記錄 (例如 handle_error 和 handle_warning)。 |
您可以使用邏輯 OR 運算子 (|),一次為 LogSubsystems 設定值設定一個以上的值。例如,以下這行程式碼會開啟有關連接和陳述式活動的記錄:
sqlsrv_configure("LogSubsystems", SQLSRV_LOG_SYSTEM_CONN | SQLSRV_LOG_SYSTEM_STMT);
您也可以在 php.ini 檔中為 LogSubsystems 設定指定整數值來開啟記錄。例如,將以下這行加入到 php.ini 檔的 [sqlsrv]
區段將會開啟連接活動的記錄:
sqlsrv.LogSubsystems = 2
將整數值加在一起便可以一次指定多個選項。例如,將以下這行加入到 php.ini 檔的 [sqlsrv]
區段將會開啟連接和陳述式活動的記錄:
sqlsrv.LogSubsystems = 6
記錄錯誤、警告和通知
在您開啟記錄之後,必須指定要記錄哪些內容。您可以記錄以下其中一種或多種:錯誤、警告和通知。例如,以下這行程式碼指定只會記錄警告:
sqlsrv_configure("LogSeverity", SQLSRV_LOG_SEVERITY_WARNING);
注意
LogSeverity 的預設值為 SQLSRV_LOG_SEVERITY_ERROR。如果已開啟記錄,而且未指定 LogSeverity 的任何設定值,就只會記錄錯誤。
下表描述可當做 LogSeverity 設定之值使用的常數:
值 (括號中相同的整數) | 描述 |
---|---|
SQLSRV_LOG_SEVERITY_ALL (-1) |
指定將會記錄錯誤、警告和通知。 |
SQLSRV_LOG_SEVERITY_ERROR (1) |
指定將會記錄錯誤。 |
SQLSRV_LOG_SEVERITY_WARNING (2) |
指定將會記錄警告。 |
SQLSRV_LOG_SEVERITY_NOTICE (4) |
指定將會記錄通知。 |
您可以使用邏輯 OR 運算子 (|),一次為 LogSeverity 設定值設定一個以上的值。例如,以下這行程式碼指定應該會記錄錯誤和警告:
sqlsrv_configure("LogSeverity", SQLSRV_LOG_SEVERITY_ERROR | SQLSRV_LOG_SEVERITY_WARNING);
注意
為 LogSeverity 設定指定值並不會開啟記錄。若要開啟記錄,您必須為 LogSubsystems 設定指定值,然後為 LogSeverity 設定值來指定所要記錄之事項的嚴重性。
您也可以使用 php.ini 檔內的整數值,為 LogSeverity 設定值指定設定。例如,將以下這行加入到 php.ini 檔的 [sqlsrv]
區段只會啟用警告的記錄:
sqlsrv.LogSeverity = 2
將整數值加在一起便可以一次指定多個選項。例如,將以下這行加入到 php.ini 檔的 [sqlsrv]
區段將會啟用錯誤和警告的記錄:
sqlsrv.LogSeverity = 3
另請參閱
參考
sqlsrv_configure
sqlsrv_get_config