浅谈php自定义错误日志,浅谈php自定义
浅谈php自定义错误日志,浅谈php自定义
平时经常看php的错误日志,很少有机会去自己动手写日志,看了王健的《最佳日志实践》觉得写一个清晰明了,结构分明的日志还是非常有必要的。
在写日志前,我们问问自己:为什么我们有时要记录自定义的日志呢?而不用系统默认的日志记录方式呢?
我认为有两个原因:
1.团队需要一个统一格式的日志方便管理
2.大量无用错误日志占据硬盘空间,仅需记录有意义的日志。
那么,实践一下。
1.打开你的php.ini
2.打开日志记录,将
复制代码 代码如下:
log_errors = Off
改成
复制代码 代码如下:
log_errors = On
3.将php.ini保存退出并重启web服务器
4.在你的代码最前面加上如下代码
复制代码 代码如下:
//错误处理函数
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
$log_file = "./php_%s_log_".date("Ymd").".log";//定义日志文件存放目录和文件名
$template = '';
switch ($errno) {
case E_USER_ERROR:
$template .= "用户ERROR级错误,必须修复 错误编号[$errno] $errstr ";
$template .= "错误位置 文件$errfile,第 $errline 行\n";
$log_file = sprintf($log_file,'error');
exit(1);//系统退出
break;
case E_USER_WARNING:
$template .= "用户WARNING级错误,建议修复 错误编号[$errno] $errstr ";
$template .= "错误位置 文件$errfile,第 $errline 行\n";
$log_file = sprintf($log_file,'warning');
break;
case E_USER_NOTICE:
$template .= "用户NOTICE级错误,不影响系统,可不修复 错误编号[$errno] $errstr ";
$template .= "错误位置 文件$errfile,第 $errline 行\n";
$log_file = sprintf($log_file,'notice');
break;
default:
$template .= "未知错误类型: 错误编号[$errno] $errstr ";
$template .= "错误位置 文件$errfile,第 $errline 行\n";
$log_file = sprintf($log_file,'unknown');
break;
}
file_put_contents($log_file,$template,FILE_APPEND);
return true;
}
$error_handler = set_error_handler("myErrorHandler");//开启自定义错误日志
5.试着在刚才的代码后写下一段错误代码
echo 1/0;
看看你定义的路径下是否多了一个日志文件呢?:)
注:以下级别的错误不能由用户定义的函数来处理: E_ERROR、 E_PARSE、 E_CORE_ERROR、 E_CORE_WARNING、 E_COMPILE_ERROR、 E_COMPILE_WARNING,和在 调用 set_error_handler() 函数所在文件中产生的大多数 E_STRICT。
不过当你开启了错误日志系统(php.ini中的log_error = on)并且指定了系统日志文件(同样也是php.ini中的error_log=路径名),并且error_reporting开启了全部后,以上的错误都会作为系统错误日志而记录在你定义的文件中。
以上就是本文所述的全部内容了,希望大家能对php自定义错误日志有新的认识。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie
