Fonction de journalisation de la fonction PHP

WBOY
Libérer: 2023-05-18 15:04:01
original
1901 Les gens l'ont consulté

Fonction de journalisation de la fonction PHP

Lors du développement d'applications PHP, nous rencontrons généralement de nombreuses situations qui nécessitent une journalisation. Par exemple, la journalisation est particulièrement importante lorsque nous devons déboguer un programme, résoudre des problèmes ou suivre le comportement des utilisateurs. En PHP, la meilleure pratique pour la journalisation consiste à utiliser la fonction log. Cet article expliquera comment enregistrer les journaux, comment étendre, utiliser et configurer les fonctions de journal.

1. Introduction aux fonctions de journalisation

En PHP, le système fournit des fonctions de journalisation, et nous pouvons utiliser ces fonctions pour enregistrer des journaux. Les fonctions de journalisation de PHP incluent :

  1. error_log() : utilisée pour enregistrer les informations sur les erreurs.
  2. syslog() : utilisé pour écrire des messages dans le journal système.
  3. openlog() : utilisé pour ouvrir une connexion de journal dans le système.
  4. closelog() : utilisé pour fermer la connexion du journal.
  5. syslog-ng : utilisé pour enregistrer les journaux système et fournir des outils de gestion de configuration. Il prend en charge l'envoi de journaux via TCP/IP, UDP, TCP, SSL et d'autres protocoles.

Dans les applications pratiques, nous utilisons généralement la fonction error_log() pour la journalisation.

2. Utilisez la fonction error_log() pour enregistrer les journaux

La syntaxe de base de la fonction error_log() est la suivante :

bool error_log ( string $message [, int $message_type [, string $destination [, string $extra_headers ]]] )
Copier après la connexion

Parmi eux :

$message : le message à écrire dans le journal.

$message_type : peut être des trois types suivants :

  • 0 : valeur par défaut, écrit le message dans le journal des erreurs PHP.
  • 1 : Envoyez le message au fichier ou à l'adresse e-mail spécifié.
  • 2 : Écrivez le message dans le journal interne du système.

$destination : Lorsque $message_type est 1, ce paramètre spécifie le fichier de destination ou l'adresse e-mail pour l'envoi du message ; lorsque $message_type est 0, ce paramètre est ignoré lorsque $message_type est 2, ce paramètre spécifie le journal interne du système ; taper.

$extra_headers : Lorsque $message_type vaut 1, ce paramètre spécifie les informations d'en-tête de l'e-mail.

Normalement, nous nous connecterons à un fichier, utilisez le code suivant pour écrire le message dans le fichier journal :

$logfile = '/path/to/logfile.log';
error_log($message, 3, $logfile);
Copier après la connexion

Cela écrira $message dans le fichier $path/to/logfile.log.

3. Fonction de journalisation étendue

PHP fournit une fonction appelée set_error_handler(), grâce à laquelle nous pouvons étendre la fonction de journalisation pour faciliter l'utilisation et la gestion des journaux. La syntaxe de base de la fonction

set_error_handler() est la suivante :

mixed set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )
Copier après la connexion

Parmi eux :

$error_handler : une fonction de gestion des erreurs personnalisée, qui peut être une fermeture ou une fonction ordinaire.

$error_types : Facultatif, la valeur par défaut est E_ALL | E_STRICT, le type d'erreur est spécifié, seules les erreurs du type d'erreur spécifié seront transmises à la fonction $error_handler pour traitement.

L'exemple de code est le suivant :

$logfile = '/path/to/logfile.log';

function my_error_handler($errno, $errstr, $errfile, $errline) {
    $message = "$errno: $errstr in $errfile on line $errline";
    error_log($message, 3, $logfile);
}

set_error_handler('my_error_handler');
Copier après la connexion

Cela écrira les erreurs PHP dans le fichier $path/to/logfile.log.

4. Utilisez Monolog pour étendre la journalisation

Une autre méthode de journalisation consiste à utiliser la bibliothèque tierce Monolog. Monolog est une bibliothèque de journalisation PHP populaire qui peut facilement enregistrer différents types de journaux et fournit plusieurs méthodes de transmission et de formatage des journaux.

Pour utiliser Monolog, vous devez d'abord installer la bibliothèque Monolog. La commande pour installer Monolog à l'aide de Composer est la suivante :

composer require monolog/monolog
Copier après la connexion

Une fois l'installation terminée, nous pouvons utiliser le code suivant pour nous connecter :

use MonologLogger;
use MonologHandlerStreamHandler;

$log = new Logger('mylog');
$log->pushHandler(new StreamHandler($logfile, Logger::WARNING));

$log->error('This is an error message.');
Copier après la connexion

Cela écrira les informations du journal dans le fichier $path/to/logfile.log.

5. Résumé

La journalisation est l'une des fonctions de base que chaque application doit implémenter. En PHP, nous pouvons utiliser les fonctions de journalisation error_log(), syslog(), openlog() et closelog() fournies par le système pour la journalisation. Dans le même temps, nous pouvons également utiliser des bibliothèques tierces telles que Monolog pour étendre la fonction de journalisation. Bien entendu, pour implémenter des fonctions plus personnalisées et complexes, nous pouvons utiliser la fonction set_error_handler() pour personnaliser la façon dont les journaux sont traités afin de répondre à nos propres besoins. Dans les applications réelles, vous devez choisir la méthode de journalisation la plus adaptée aux besoins réels.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!