Maison  >  Article  >  développement back-end  >  Comment générer un journal des erreurs en php

Comment générer un journal des erreurs en php

PHPz
PHPzoriginal
2023-03-28 10:38:24775parcourir

Dans le développement PHP, diverses erreurs et exceptions se produisent souvent. Ces messages d'erreur sont très importants lors du débogage et du dépannage. La génération de journaux d'erreurs est un très bon moyen de nous aider à localiser rapidement les problèmes et à les résoudre. Cet article explique comment générer des journaux d'erreurs en PHP.

1. Paramètres du fichier de configuration php.ini

Tout d'abord, nous devons trouver le fichier php.ini, qui se trouve généralement dans le répertoire d'installation de PHP. Ouvrez le fichier et recherchez les instructions log_errors et error_log pour la configuration.

  • log_errors : Lorsque cette directive est définie sur On, cela signifie activer la fonction de journal des erreurs PHP.
  • error_log : Lorsque la commande log_errors est activée, cette commande est utilisée pour spécifier le chemin de sortie et le nom de fichier du journal des erreurs, qui peut être un chemin relatif ou absolu.

Par exemple, nous pouvons définir log_errors sur On, puis définir error_log sur /var/www/myapp/phperrors.log, puis PHP affichera le message d'erreur sur /var/www/myapp/phperrors lorsqu'une erreur se produit. Fichier .log.

2. Configurer la gestion des erreurs dans le code PHP

En plus de la configuration dans le fichier php.ini, nous pouvons également configurer la gestion des erreurs dans le code PHP. PHP fournit la fonction set_error_handler(), qui peut enregistrer une fonction personnalisée en tant que fonction de gestion des erreurs PHP. Lorsqu'une erreur se produit dans PHP, la fonction de gestion des erreurs sera automatiquement appelée pour gérer les informations d'erreur.

Par exemple :

function myErrorHandler($errno, $errstr, $errfile, $errline) {
    error_log(date('Y-m-d H:i:s')." Error: {$errstr} in {$errfile} on line {$errline}\n", 3, "/var/www/myapp/phperrors.log");
}
set_error_handler("myErrorHandler");

Dans cet exemple, nous définissons une fonction de gestion des erreurs personnalisée nommée myErrorHandler() et l'enregistrons en tant que fonction de gestion des erreurs PHP à l'aide de la fonction set_error_handler(). Lorsqu'une erreur se produit dans PHP, cette fonction sera automatiquement appelée et les informations d'erreur seront affichées dans le fichier dans le chemin spécifié.

3. Utilisez la bibliothèque Monolog dans votre application

En plus des deux méthodes ci-dessus, nous pouvons également utiliser la bibliothèque tierce Monolog pour générer des journaux d'erreurs PHP. Monolog est une bibliothèque de journalisation PHP populaire qui fournit une variété de méthodes flexibles de traitement des journaux.

Tout d'abord, nous devons installer la bibliothèque Monolog à l'aide de Composer :

composer require monolog/monolog

Ensuite, introduisez la bibliothèque Monolog dans le code PHP et créez un gestionnaire d'erreurs. Ici, nous prenons la sortie dans un fichier comme exemple.

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// 创建一个名为mylog的日志记录器
$mylog = new Logger('mylog');

// 添加一个输出到文件的处理器,输出到/var/www/myapp/phperrors.log文件中
$mylog->pushHandler(new StreamHandler('/var/www/myapp/phperrors.log', Logger::ERROR));

// 绑定异常和错误处理函数,输出到日志中
function myErrorHandler($exception) {
    global $mylog;
    $mylog->addError($exception->getMessage(), ['exception' => $exception]);
}
set_exception_handler('myErrorHandler');
set_error_handler(function($errno, $errstr, $errfile, $errline) {
    myErrorHandler(new ErrorException($errstr, 0, $errno, $errfile, $errline));
});

Dans cet exemple, nous créons un enregistreur nommé mylog et utilisons StreamHandler pour afficher les informations d'erreur dans le fichier /var/www/myapp/phperrors.log. Ensuite, nous lions la fonction myErrorHandler() aux fonctions PHP de gestion des exceptions et des erreurs via les méthodes set_exception_handler() et set_error_handler().

4. Résumé

Grâce aux trois méthodes ci-dessus, nous pouvons générer des journaux d'erreurs en PHP et localiser facilement les problèmes. La méthode à choisir peut être décidée en fonction de la situation réelle et des habitudes personnelles. Pendant le développement, nous devons enregistrer les journaux d'erreurs en temps opportun et résoudre les erreurs en temps opportun, améliorant ainsi la stabilité et la maintenabilité du code.

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!

Déclaration:
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