Maison > Article > développement back-end > journal de sortie php
Le contenu de cet article concerne le journal de sortie php, qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer
Réimprimé. à partir de https ://www.cnblogs.com/yszr/p/8489433.html
error_log('Les informations que vous souhaitez afficher', 3, 'E:workjiajiayueApplicationApiController1.txt');die;
php error_log enregistre le journal Utilisation et configuration
Pour les développeurs PHP, une fois qu'un produit est utilisé, l'option display_errors doit être désactivée immédiatement pour éviter le chemin, la connexion à la base de données, la table de données et d'autres informations divulguées par ceux-ci erreurs. Et a été attaqué par des pirates. Cependant, après la mise en service d'un produit, des erreurs se produiront inévitablement, alors comment enregistrer certains rapports d'erreurs utiles aux développeurs ? Nous pouvons enregistrer les rapports d'erreurs dans des fichiers texte séparés. L'enregistrement des journaux d'erreurs peut aider les développeurs ou les gestionnaires à vérifier s'il existe des problèmes avec le système. Si vous devez écrire des rapports d'erreurs dans le programme dans le journal des erreurs, activez simplement la directive de configuration log_errors dans le fichier de configuration PHP. Les rapports d'erreurs seront consignés par défaut dans le fichier journal du serveur Web, par exemple dans le fichier journal des erreurs error.log du serveur Apache. Bien sûr, vous pouvez également enregistrer le journal des erreurs dans un fichier spécifié ou l'envoyer au journal système du système. Les introductions respectives sont les suivantes :
1 Utilisez le fichier spécifié pour enregistrer le journal du rapport d'erreurs.
Utiliser Le fichier spécifié enregistre le journal du rapport d'erreurs. Utilisez le fichier spécifié pour enregistrer le journal du rapport d'erreurs. Utilisez le fichier spécifié pour enregistrer le journal du rapport d'erreurs. journal des erreurs, veillez à stocker ce fichier en dehors du répertoire racine du document pour réduire les erreurs et les risques d'attaque. Et le fichier doit être écrit par l'utilisateur qui exécute le script PHP (le propriétaire du processus du serveur Web). Supposons que dans le système d'exploitation Linux, le fichier error.log dans le répertoire /usr/local/ est utilisé comme fichier journal des erreurs et que l'utilisateur du processus du serveur Web est configuré pour disposer d'autorisations d'écriture. Ensuite, dans le fichier de configuration PHP, définissez la valeur de la directive error_log sur le chemin absolu du fichier journal des erreurs.
Vous devez apporter les modifications suivantes aux instructions de configuration dans php.ini :
1. error_reporting = E_ALL ; chaque erreur qui se produit sera signalée à PHP
2. directive ci-dessus Tous les rapports d'erreurs des règles définies
3. log_errors = on; Détermine l'emplacement des enregistrements du journal
4. log_errors_max_len = 1024; définit la longueur maximale de chaque journal
5. /php_error.log ;Spécifiez l'emplacement du fichier journal où le rapport d'erreur généré est écrit
Une fois le fichier de configuration PHP défini comme ci-dessus, redémarrez le serveur Web. De cette façon, lors de l'exécution d'un fichier de script PHP, tous les rapports d'erreurs générés ne seront pas affichés dans le navigateur, mais seront enregistrés dans le journal des erreurs /usr/local/error.log spécifié par vous. De plus, non seulement toutes les erreurs qui répondent aux règles définies par error_reporting peuvent être enregistrées, mais un message d'erreur défini par l'utilisateur peut également être envoyé à l'aide de la fonction error_log() en PHP.
Le prototype de cette fonction est le suivant :
1. bool error_log ( string message [, int message_type [, string destination [, string extra_headers]]] )
Cette fonction enverra des informations d'erreur au fichier journal des erreurs du serveur Web, à un serveur TCP ou à un déposer. Cette fonction renvoie VRAI en cas de succès et FAUX en cas d'échec. Le premier message de paramètre est requis, c'est-à-dire le message d'erreur à envoyer. Si seul ce paramètre est utilisé, le message sera envoyé à l'emplacement défini dans le fichier de configuration php.ini. Le deuxième paramètre message_type est une valeur entière : 0 signifie l'envoyer au journal du système d'exploitation ; 1 utilise la fonction Mail() de PHP pour envoyer le message à une adresse e-mail ; le quatrième paramètre extra_headers sera également utilisé ; les informations d'erreur au serveur TCP. À ce stade, le troisième paramètre destination représente l'adresse IP et le port de destination. 3. Enregistrez les informations dans le fichier de destination.
Si l'on prend comme exemple le problème de connexion à la base de données Oracle, l'utilisation de cette fonction est la suivante :
1. <?php 2. if(!Ora_Logon($username, $password)){ 3. error_log("Oracle数据库不可用!", 0); //将错误消息写入到操作系统日志中 4. } 5. if(!($foo=allocate_new_foo()){ 6. error_log("出现*烦了!", 1, ". mydomain.com"); //发送到管理员邮箱中 7. } 8. error_log("搞砸了!", 2, "localhost:5000"); //发送到本机对应5000端口的服务器中 9. error_log("搞砸了!", 3, "/usr/local/errors.log"); //发送到指定的文件中 10. ?>
2. Les informations d'erreur sont enregistrées dans le journal du système d'exploitation
Les informations d'erreur sont enregistrées dans le journal. du système d'exploitation Les informations sur les erreurs sont enregistrées dans le journal du système d'exploitation. Les informations sur les erreurs sont enregistrées dans le journal du système d'exploitation. Les rapports d'erreur peuvent également être enregistrés dans le journal du système d'exploitation, mais la gestion des journaux est quelque peu différente selon les systèmes d'exploitation. Sous Linux, les déclarations d'erreur seront envoyées au syslog, tandis que sous Windows, les erreurs seront envoyées au journal des événements. Si vous n'êtes pas familier avec syslog, sachez au moins qu'il s'agit d'un outil de journalisation basé sur UNIX qui fournit une API pour enregistrer les messages liés à l'exécution du système et des applications. Le journal des événements Windows est en fait le même que le journal système UNIX, et ces journaux peuvent généralement être consultés via l'Observateur d'événements. Si vous souhaitez écrire des rapports d'erreurs dans le journal du système d'exploitation, vous pouvez définir la valeur de la directive error_log sur syslog dans le fichier de configuration.
Les instructions de configuration spécifiques qui doivent être modifiées dans php.ini sont les suivantes :
1. error_reporting = E_ALL ;将会向PHP报告发生的每个错误 2. display_errors = Off ;不显示 满足上条指令所定义规则的所有错误报告 3. log_errors = On ;决定日志语句记录的位置 4. log_errors_max_len = 1024 ;设置每个日志项的最大长度 5. error_log = syslog ;指定产生的错误报告写入操作系统的日志里
En plus de la sortie d'erreur générale, PHP permet également d'envoyer des messages personnalisés au syslog du système. Bien que des messages personnalisés puissent également être envoyés à syslog via la fonction error_log() introduite précédemment, PHP fournit quatre fonctions dédiées à cette fonctionnalité qui doivent être utilisées ensemble.
sont présentés comme suit :
define_syslog_variables()
Doit être utilisé avant d'utiliser les trois fonctions openlog(), syslog et closelog () Appelez d'abord cette fonction. Parce que lorsque cette fonction est appelée, elle initialisera certaines constantes nécessaires pour les trois fonctions suivantes en fonction de l'environnement système actuel.
openlog()
Ouvrez une connexion à l'enregistreur dans le système actuel pour préparer l'insertion des messages de journal dans le système. Et insérez le premier paramètre de chaîne fourni dans chaque message de journal. La fonction doit également spécifier deux paramètres qui seront utilisés dans le contexte du journal. Vous pouvez vous référer à la documentation officielle pour l'utiliser.
syslog()
Cette fonction envoie un message personnalisé au journal système. Deux paramètres obligatoires sont requis. Le premier paramètre personnalise la priorité du message en spécifiant une constante. Par exemple, LOG_WARNING représente un avertissement général, LOG_EMERG représente un problème grave pouvant indiquer un crash du système, et certaines autres constantes indiquant la gravité peuvent être utilisées selon la documentation officielle. Le deuxième paramètre est un message personnalisé envoyé au journal système. Vous devez fournir une chaîne de message ou une chaîne d'erreur fournie par le moteur PHP au moment de l'exécution.
closelog()
Cette fonction est appelée après l'envoi du message personnalisé au journal système et ferme la connexion au journal ouverte par la fonction openlog().
Si vous avez activé la commande pour envoyer des messages personnalisés à syslog dans le fichier de configuration, vous pouvez utiliser les quatre fonctions introduites précédemment pour envoyer un message d'avertissement au journal système. et utilisez l'outil d'analyse syslog du système pour afficher et analyser les messages personnalisés envoyés par le programme PHP, comme indiqué ci-dessous :
1. 2. define_syslog_variables(); 3. openlog("PHP5", LOG_PID , LOG_USER); 4. syslog(LOG_WARNING, "警告报告向syslog中发送的演示, 警告时间:".date("Y/m/d H:i:s")); 5. closelog(); 6. ?>
En prenant le système Windows comme exemple, en cliquant avec le bouton droit sur "Poste de travail" et en sélectionnant l'option de gestion, puis en allant dans le menu des outils système, en sélectionnant Observateur d'événements, puis en trouvant l'option d'application, vous pouvez voir notre personnalisé message d'avertissement. Le code ci-dessus générera un message similaire au suivant dans le fichier syslog du système, qui fait partie de l'événement :
1. PHP5[3084], une démonstration de rapport d'avertissement envoyé à syslog, avertissement Heure : 26/03/2009 04:09:11
Que vous utilisiez un fichier spécifié ou que vous utilisiez syslog pour enregistrer les journaux d'erreurs dépend de l'environnement de votre serveur Web. Si vous contrôlez le serveur Web, l'utilisation de syslog est idéale car vous pouvez utiliser les outils d'analyse syslog pour afficher et analyser les journaux. Mais si votre site Web s'exécute sur un hôte virtuel sur un serveur partagé, vous ne pouvez utiliser qu'un fichier texte distinct pour enregistrer les journaux d'erreurs.
Recommandations associées :
php affiche la liste de tous les fuseaux horaires
fonction de journal d'écriture php
PHP implémente une fonction de journal
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!