アクティビティのログ記録
既定では、SQL Server Driver for PHP で生成されるエラーと警告はログに記録されません。ログを有効にするには、sqlsrv_configure 関数を使用するか、php.ini ファイルを変更します。初期化、接続、ステートメント、またはエラー関数のアクティビティをログに記録できます。また、エラー、警告、通知、またはこの 3 つすべてをログに記録するかどうかを指定できます。
ログの有効化
ログを有効にするには、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 など) のログを有効にします。 |
LogSubsystems 設定では、論理 OR 演算子 (|) を使用して一度に複数の値を指定できます。たとえば、次のコード行は、接続とステートメントの両方のアクティビティのログを有効にします。
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
エラー、警告、および通知のログ
ログを有効にしたら、ログに記録する内容を指定する必要があります。ログに記録する内容は、エラー、警告、および通知の中から 1 つ以上を選択できます。たとえば、次のコード行は、警告のみをログに記録するように指定します。
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) |
通知をログに記録するように指定します。 |
LogSeverity 設定では、論理 OR 演算子 (|) を使用して一度に複数の値を指定できます。たとえば、次のコード行は、エラーと警告をログに記録するように指定します。
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