Journalisation de l’activité
Par défaut, les erreurs et les avertissements générés par le Pilotes Microsoft SQL Server pour PHP ne sont pas consignés dans le journal système PHP. Cette rubrique explique comment configurer l’activité de journalisation des pilotes. Pour plus d’informations sur la configuration des paramètres de gestion des erreurs PHP qui ne sont pas spécifiques aux pilotes, consultez la documentation PHP.
Journalisation de l’activité à l’aide du pilote PDO_SQLSRV
La seule configuration de journalisation disponible pour le pilote PDO_SQLSRV est l’entrée pdo_sqlsrv.log_severity dans le fichier php.ini.
Ajoutez ce qui suit à la fin de votre fichier php.ini :
[pdo_sqlsrv]
pdo_sqlsrv.log_severity = <number>
log_severity peut avoir l’une des valeurs suivantes :
Valeur | Description |
---|---|
0 | La journalisation est désactivée (valeur par défaut si rien n’est défini). |
-1 | Spécifie que les erreurs, les avertissements et les notifications doivent être enregistrés. |
1 | Spécifie que les erreurs sont consignées. |
2 | Spécifie que les avertissements sont consignés. |
4 | Spécifie que les notifications sont consignées. |
Les informations de journalisation seront ajoutées au fichier phperrors.log.
PHP lit le fichier de configuration lors de l’initialisation et stocke les données dans une mémoire cache. Il fournit aussi une API pour mettre à jour ces paramètres et les utiliser immédiatement, et est écrit dans le fichier de configuration. Cette API permet aux scripts d’application de modifier les paramètres même après l’initialisation de PHP.
Journalisation de l’activité à l’aide du pilote SQLSRV
Pour activer la journalisation, vous pouvez utiliser la fonction sqlsrv_configure ou modifier le fichier php.ini. Vous pouvez enregistrer l’activité en cas d’initialisation, de connexion, d’exécution d’instruction ou de fonction d’erreur. Vous pouvez également spécifier s’il faut enregistrer les erreurs, les avertissements, les avis ou les trois.
Notes
Vous pouvez configurer l’emplacement du fichier journal dans le fichier php.ini. Pour plus d’informations, consultez la documentation PHP.
Activation de la journalisation
Vous pouvez activer la journalisation en utilisant la fonction sqlsrv_configure pour spécifier la valeur du paramètre LogSubsystems. Par exemple, la ligne de code suivante configure le pilote pour enregistrer l’activité des connexions :
sqlsrv_configure("LogSubsystems", SQLSRV_LOG_SYSTEM_CONN);
Le tableau suivant décrit les constantes que vous pouvez utiliser comme valeur du paramètre LogSubsystems :
Valeur (entier équivalent entre parenthèses) | Description |
---|---|
SQLSRV_LOG_SYSTEM_ALL (-1) | Active la journalisation de tous les sous-systèmes. |
SQLSRV_LOG_SYSTEM_OFF (0) | Désactive la journalisation. Il s’agit de la valeur par défaut. |
SQLSRV_LOG_SYSTEM_INIT (1) | Active la journalisation de l’activité d’initialisation. |
SQLSRV_LOG_SYSTEM_CONN (2) | Active la journalisation de l’activité de connexion. |
SQLSRV_LOG_SYSTEM_STMT (4) | Active la journalisation de l’activité d’instruction. |
SQLSRV_LOG_SYSTEM_UTIL (8) | Active la journalisation de l’activité de fonctions d’erreur (telle que handle_error et handle_warning). |
Vous pouvez définir plusieurs valeurs à la fois pour le paramètre LogSubsystems à l’aide de l’opérateur logique OR (|). Par exemple, la ligne de code suivante active la journalisation de l’activité pour les connexions et les instructions :
sqlsrv_configure("LogSubsystems", SQLSRV_LOG_SYSTEM_CONN | SQLSRV_LOG_SYSTEM_STMT);
Vous pouvez également activer la journalisation en spécifiant une valeur entière pour le paramètre LogSubsystems dans le fichier php.ini. Par exemple, ajoutez la ligne suivante à la section [sqlsrv]
du fichier php.ini pour activer la journalisation de l’activité de connexion :
sqlsrv.LogSubsystems = 2
En ajoutant des valeurs entières, vous pouvez spécifier plusieurs options à la fois. Par exemple, ajoutez la ligne suivante à la section [sqlsrv]
du fichier php.ini pour activer la journalisation de l’activité de connexion et d’instruction :
sqlsrv.LogSubsystems = 6
Journalisation des erreurs, avertissements et avis
Après avoir activé la journalisation, vous devez spécifier les éléments à enregistrer. Vous pouvez enregistrer un ou plusieurs des éléments suivants : erreurs, avertissements et avis. Par exemple, la ligne de code suivante spécifie que seuls les avertissements doivent être enregistrés :
sqlsrv_configure("LogSeverity", SQLSRV_LOG_SEVERITY_WARNING);
Notes
Le paramètre par défaut de LogSeverity est SQLSRV_LOG_SEVERITY_ERROR. Si la journalisation est activée et qu’aucun paramètre pour LogSeverity n’a été spécifié, seules les erreurs sont enregistrées.
Le tableau suivant décrit les constantes que vous pouvez utiliser comme valeur du paramètre LogSeverity :
Valeur (entier équivalent entre parenthèses) | Description |
---|---|
SQLSRV_LOG_SEVERITY_ALL (-1) | Spécifie que les erreurs, les avertissements et les notifications doivent être enregistrés. |
SQLSRV_LOG_SEVERITY_ERROR (1) | Spécifie que les erreurs sont consignées. Il s’agit de la valeur par défaut. |
SQLSRV_LOG_SEVERITY_WARNING (2) | Spécifie que les avertissements sont consignés. |
SQLSRV_LOG_SEVERITY_NOTICE (4) | Spécifie que les notifications sont consignées. |
Vous pouvez définir plusieurs valeurs à la fois pour le paramètre LogSeverity à l’aide de l’opérateur logique OR (|). Par exemple, la ligne de code suivante spécifie que les erreurs et les avertissements doivent être enregistrés :
sqlsrv_configure("LogSeverity", SQLSRV_LOG_SEVERITY_ERROR | SQLSRV_LOG_SEVERITY_WARNING);
Notes
Le fait de spécifier une valeur pour le paramètre LogSeverity n’active pas la journalisation. Pour activer la journalisation, attribuez une valeur au paramètre LogSubsystems, puis spécifiez la gravité des éléments enregistrés en affectant une valeur à LogSeverity.
Vous pouvez également affecter une valeur au paramètre LogSeverity en spécifiant des valeurs entières dans le fichier php.ini. Par exemple, ajoutez la ligne suivante à la section [sqlsrv]
du fichier php.ini pour activer uniquement la journalisation des avertissements :
sqlsrv.LogSeverity = 2
En ajoutant des valeurs entières, vous pouvez spécifier plusieurs options à la fois. Par exemple, ajoutez la ligne suivante à la section [sqlsrv]
du fichier php.ini pour activer la journalisation des erreurs et des avertissements :
sqlsrv.LogSeverity = 3
Voir aussi
Guide de programmation pour les pilotes Microsoft pour PHP pour SQL Server