查看PHP错误日志
可以在命令行里面输入: find . -name error.log
tailf -f error.log
所谓的日志就是记录系统运行状态的数据.
一般是将信息记录到文本文件或数据库中.
比如:
php
function writeLog($msg){
$logFile = date('Y-m-d').'.txt';
$msg = date('Y-m-d H:i:s').' '.$msg."\r\n";
file_put_contents($logFile,$msg,FILE_APPEND );
}
//调用上面的函数,写一条信息进日志文件
writeLog('这是测试日志信息');
我们要写一个写日志的函数,首先需要了解需求,我们一般怎么用日志函数呢?例如,程序执行到某一步,我希望把这个变量(地址)$user_address的值打印到日志,我们希望日志里是这么写的:
◆xx-xx-xx xx:xx $user_address : 上海市杨浦区xxxxx
然后每一条日志都要换行,都有日期时间,
假设 函数名称是log();
我们希望这么调用他 log('useraddress:user_address);
那如果$user_address 是一个数组,我想把一个数组的全都都输出到日志中,该怎么办呢?
有一个函数是print_r($arg,true),第二个参数表示不直接输出,而是输出的结果作为返回值.我们知道他的输出结果为一段字符串.
log函数可以这么写
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);
return true;
用法:
①打印一般变量$a,
log('得到了$a的值:%s',$a );
log('%s',print_r($arr,true));
可以对上面的函数进行改进下
{
$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);
function?pai(?$NumStr?)?{
$Arr?=?preg_split('/[\,,]◆/is',?$NumStr);
$Ou?=?$Ji?=?array();
foreach(?$Arr?as?$val?)?{
arsort($Ji);
asort($Ou);
//print_r(?$Ji?);
echo?join(',',?$Ji?),?',',?join(',',?$Ou?);
function?ca(?$NumStr?)?{
echo?max(?$Arr?)?-?min(?$Arr?);
function?length(?$Num?)?{
echo?strlen(?$Num?);
echo?'br/';
①.、使用指定的文件记录错误报告日志
使 用指定的文件记录错误报告日志使用指定的文件记录错误报告日志使用指定的文件记录错误报告日志 如果使用自己指定的文件记录错误日志,一定要确保将这个文 件存放在文档根目录之外,以减少遭到攻击的可能.并且该文件一定要让PHP脚本的执行用户(Web服务器进程所有者)具有写权限.假设在Linux操作系 统中,将/usr/local/目录下的error.log文件作为错误日志文件,并设置Web服务器进程用户具有写的权限.然后在PHP的配置文件中, 将error_log指令的值设置为这个错误日志文件的绝对路径.
需要将php.ini中的配置指令做如下修改:
① error_reporting = E_ALL ;将会向PHP报告发生的每个错误
PHP 的配置文件按上面的方式设置完成以后,并重新启动Web服务器.这样,在执行PHP的任何脚本文件时,所产生的所有错误报告都不会在浏览器中显示,而会记 录在自己指定的错误日志/usr/local/error.log中.此外,不仅可以记录满足error_reporting所定义规则的所有错误,而且 还可以使用PHP中的error_log()函数,送出一个用户自定义的错误信息.
本文实例讲述了PHP中error_log()函数的使用方法.分享给大家供大家参考.具体分析如下:
今天遇到一个问题需要调试,但是只能通过日志打印调试,就用到了error_log这个函数
需要打印的是一台服务器发送到我们服务器的post数据
代码如下:(key和value都打印了)
复制代码
代码如下:if(!empty($_POST)
){
while
(list($key,
$val)
=
each($_POST))
@error_log("$key
$val",
);
error_log有四个参数
服务器用的是centos
,tmp有读写权限
所以就写入tmp内了
error_log会自动生成相应的log文件,不需要手动创建!
希望本文所述对大家的php程序设计有所帮助.
以上就是土嘎嘎小编为大家整理的php简单日志写入函数,php相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!