Protokollieren von Aktivitäten
Von Microsoft-Treiber für PHP für SQL Server generierte Fehler und Warnungen werden standardmäßig nicht im PHP-Systemprotokoll protokolliert. In diesem Artikel wird erläutert, wie die Treiberprotokollierungsaktivität konfiguriert wird. Weitere Informationen zum Konfigurieren von Einstellungen für die PHP-Fehlerbehandlung, die nicht für Treiber spezifisch sind, finden Sie in der PHP-Dokumentation.
Protokollieren von Aktivitäten mit dem PDO_SQLSRV-Treiber
Die einzige verfügbare Protokollierungskonfiguration, die spezifisch für den PDO_SQLSRV-Treiber ist, ist der Eintrag „pdo_sqlsrv.log_severity“ in der Datei „php.ini“.
Fügen Sie am Ende der Datei „php.ini“ Folgendes ein:
[pdo_sqlsrv]
pdo_sqlsrv.log_severity = <number>
Fürlog_severity sind die folgenden Werte möglich.
Wert | Beschreibung |
---|---|
0 | Die Protokollierung ist deaktiviert (Standardeinstellung, wenn nichts definiert ist). |
-1 | Gibt an, dass Fehler, Warnungen und Hinweise protokolliert werden. |
1 | Gibt an, dass Fehler protokolliert werden |
2 | Gibt an, dass Warnungen protokolliert werden |
4 | Gibt an, dass Benachrichtigungen protokolliert werden |
Protokollierungsinformationen werden der „phperrors.log“-Datei hinzugefügt.
PHP liest die Konfigurationsdatei bei der Initialisierung und speichert die Daten in einem Cache. Außerdem stellt es eine API bereit, um die Einstellungen, die in die Konfigurationsdatei geschrieben werden, zu updaten und sofort zu verwenden. Mit dieser API können Anwendungsskripts die Einstellungen auch nach der PHP-Initialisierung ändern.
Protokollieren von Aktivitäten mit dem SQLSRV-Treiber
Um die Protokollierung zu aktivieren, können Sie die sqlsrv_configure-Funktion verwenden oder die „php.ini“-Datei ändern. Sie können Aktivitäten protokollieren, die in Initialisierungen, Verbindungen, Anweisungen oder Fehlerfunktionen auftreten. Sie können auch angeben, ob Fehler, Warnungen, Hinweise oder alle drei protokolliert werden sollen.
Hinweis
Sie können den Speicherort der Protokolldatei in der Datei „php.ini“ konfigurieren. Weitere Informationen finden Sie in der PHP-Dokumentation.
Aktivieren der Protokollierung
Sie können die Protokollierung mit der sqlsrv_configure-Funktion aktivieren, um einen Wert für die LogSubsystems-Einstellung anzugeben. Zum Beispiel konfiguriert die folgende Codezeile den Treiber zur Protokollierung von Aktivitäten bei Verbindungen:
sqlsrv_configure("LogSubsystems", SQLSRV_LOG_SYSTEM_CONN);
Die folgende Tabelle beschreibt die Konstanten, die als Wert für die LogSubsystems -Einstellung verwendet werden können:
Wert (entsprechende ganze Zahl in Klammern) | BESCHREIBUNG |
---|---|
SQLSRV_LOG_SYSTEM_ALL (-1) | Aktiviert die Protokollierung aller Subsysteme. |
SQLSRV_LOG_SYSTEM_OFF(0) | Deaktiviert die Protokollierung. Dies ist die Standardeinstellung. |
SQLSRV_LOG_SYSTEM_INIT (1) | Aktiviert die Protokollierung der Initialisierungsaktivität. |
SQLSRV_LOG_SYSTEM_CONN (2) | Aktiviert die Protokollierung der Verbindungsaktivität. |
SQLSRV_LOG_SYSTEM_STMT (4) | Aktiviert die Protokollierung der Anweisungsaktivität. |
SQLSRV_LOG_SYSTEM_UTIL (8) | Aktiviert die Protokollierung der Fehlerfunktionsaktivität (z. B. Handle_error und Handle_warning). |
Sie können mehr als einen Wert gleichzeitig für die LogSubsystems-Einstellung mithilfe des logischen OR-Operators (|) festlegen. Die folgende Codezeile aktiviert z. B. die Protokollierung der Aktivität für Verbindungen und Anweisungen:
sqlsrv_configure("LogSubsystems", SQLSRV_LOG_SYSTEM_CONN | SQLSRV_LOG_SYSTEM_STMT);
Sie können auch die Protokollierung durch Angeben eines ganzzahligen Werts für die LogSubsystems-Einstellung in der Datei „php.ini“ aktivieren. Zum Beispiel wird durch Hinzufügen der folgenden Zeile des [sqlsrv]
-Abschnitts der „php.ini“-Datei die Protokollierung der Verbindungsaktivität aktiviert.
sqlsrv.LogSubsystems = 2
Durch die Addition von ganzzahligen Werten können Sie mehrere Optionen gleichzeitig angeben. Zum Beispiel wird durch Hinzufügen der folgenden Zeile des [sqlsrv]
-Abschnitts der „php.ini“-Datei die Protokollierung der Verbindungs- und Anweisungsaktivität aktiviert.
sqlsrv.LogSubsystems = 6
Protokollieren von Fehlern, Warnungen und Hinweisen
Nachdem die Protokollierung aktiviert wurde, müssen Sie angeben, was protokolliert werden soll. Sie können eine oder mehrere der folgenden Möglichkeiten protokollieren: Fehler, Warnungen und Hinweise. Die folgende Codezeile gibt z. B. an, dass nur Warnungen protokolliert werden:
sqlsrv_configure("LogSeverity", SQLSRV_LOG_SEVERITY_WARNING);
Hinweis
Die Standardeinstellung für LogSeverity ist SQLSRV_LOG_SEVERITY_ERROR. Wenn die Protokollierung aktiviert ist und keine Einstellung für die LogSeverity angegeben ist, werden nur Fehler protokolliert.
Die folgende Tabelle beschreibt die Konstanten, die als Wert für die LogSeverity -Einstellung verwendet werden können:
Wert (entsprechende ganze Zahl in Klammern) | BESCHREIBUNG |
---|---|
SQLSRV_LOG_SEVERITY_ALL (-1) | Gibt an, dass Fehler, Warnungen und Hinweise protokolliert werden. |
SQLSRV_LOG_SEVERITY_ERROR (1) | Gibt an, dass Fehler protokolliert werden Dies ist die Standardeinstellung. |
SQLSRV_LOG_SEVERITY_WARNING (2) | Gibt an, dass Warnungen protokolliert werden |
SQLSRV_LOG_SEVERITY_NOTICE (4) | Gibt an, dass Benachrichtigungen protokolliert werden |
Sie können mehr als einen Wert gleichzeitig für die LogSeverity-Einstellung mithilfe des logischen OR-Operators (|) festlegen. Die folgende Codezeile gibt z. B. an, dass Fehler und Warnungen protokolliert werden sollten:
sqlsrv_configure("LogSeverity", SQLSRV_LOG_SEVERITY_ERROR | SQLSRV_LOG_SEVERITY_WARNING);
Hinweis
Die Angabe eines Werts für die LogSeverity-Einstellung aktiviert nicht die Protokollierung. Aktivieren Sie die Protokollierung durch Angabe eines Werts für die LogSubsystems-Einstellung und geben Sie dann den Schweregrad an, der protokolliert werden soll, indem Sie einen Wert für LogSeverity angeben.
Sie können auch eine Einstellung für die LogSeverity -Einstellung mithilfe von ganzzahligen Werten in der Datei „php.ini“ festlegen. Zum Beispiel wird durch Hinzufügen der folgende Zeile des [sqlsrv]
-Abschnitts der „php.ini“-Datei nur die Protokollierung von Warnungen aktiviert.
sqlsrv.LogSeverity = 2
Durch die Addition von ganzzahligen Werten können Sie mehrere Optionen gleichzeitig angeben. Zum Beispiel wird durch Hinzufügen der folgende Zeile des [sqlsrv]
-Abschnitts der „php.ini“-Datei nur die Protokollierung von Fehlern und Warnungen aktiviert.
sqlsrv.LogSeverity = 3
Weitere Informationen
Programmierhandbuch für die Microsoft-Treiber für PHP für SQL Server