Maison > Article > développement back-end > PHP implémente une fonction de journalisation
Cette fois je vais vous présenter comment implémenter une fonction log en PHP. Quelles sont les précautions pour implémenter la fonction log en PHP Voici un cas pratique, jetons un oeil.
Cette fois, je vais vous présenter PHP pour implémenter une fonction de journalisation. Quelles sont les précautions à prendre pour que PHP implémente la fonction de journalisation ? Ce qui suit est un cas pratique, jetons un coup d'œil.
Nous allons écrire une fonction de journalisation. Nous devons d'abord comprendre les exigences. Comment utilisons-nous généralement la fonction de journalisation ? Par exemple, lorsque le programme atteint une certaine étape, j'espère imprimer la valeur de ? la variable (adresse) $user_address to Log, Nous espérons que le journal dira quelque chose comme ceci :
`xx-xx-xx xx:xx $user_address : xxxxx, Yangpu District, Shanghai
Ensuite, chaque journal a tous des sauts de ligne, une date et une heure
Supposons que le nom de la fonction soit log();
Nous voulons l'appeler log('useraddress:user_address) ; ;
Ensuite, si $user_address est un tableau, je veux afficher tout le contenu d'un tableau dans le journal que dois-je faire
Il existe une fonction appelée print_r($arg, true). Le deuxième paramètre signifie ne pas sortir directement. , mais le résultat de sortie est utilisé comme valeur de retour. Nous savons que son résultat de sortie est une chaîne.
log. la fonction peut être écrite comme ceci
log(){$args= func_get_args();//获得传入的所有参数的数组$numargs= func_num_args();//参数的个数if($numargs==0) {$log=""; } elseif ($numargs==1) {$log=$args[0]; }else{$format= array_shift ($args);//分割掉函数第一个元素,并且做返回值返回,'$user_address:%s'$log= vsprintf ($format,$args);//把参数代入$format中,}$log=date("[Y/m/d H:i:s] ") .$log. PHP_EOL;//加上时间$file='/usr/share/nginx/html/log.log'$fp=fopen($file,'a');fwrite($fp,$log);fclose($fp);returntrue; }
Utilisation :
1 Imprimer la variable générale $a,
log('得到了$a的值:%s',$a );
2. . Imprimer un tableau $arr
log('%s',print_r($arr,true));
Vous pouvez améliorer la fonction ci-dessus
functionlog2($arg){$log= vsprintf('%s', print_r($arg,true));$log= date('[Y/m/d H:i:s]') .'---'.$log. PHP_EOL;$path= dirname(FILE) .'/log.log'$fp= file_put_contents ($path,$log, FILE_APPEND);returntrue; }$a=[1,23,45,45]; log2($a);
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. .Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de PHP !
Lecture recommandée :
Comment Laravel 5 empêche-t-il les attaques cross-site XSS
Explication détaillée de l'utilisation de PHP interface d'accès au tableau ArrayAccess
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!