PHP自定义函数,功能: 动态获取当前文件执行行数。
是这样的,我想在公共函数文件里写一个记录系统日志的函数,主要用于记录错误,方便排错。但是如果把__FILE____LINE__写进函数的话,每次写入的文件和行数都是,该函...
是这样的,我想在公共函数文件里写一个记录系统日志的函数,主要用于记录错误,方便排错。
但是如果把__FILE__ __LINE__写进函数的话,每次写入的文件和行数都是,该函数在公共文件的行数,而不是调用该函数的文件的调用行数,想知道除了__LINE__以外有没有其他方法获取当前文件执行行数的方法。
日志格式如下:
[2011-07-20 15:36:49] [error: user_login] occurs from [127.0.0.1] "file: /usr/web/mysite/htdocs/index.php line:13 。" 展开
但是如果把__FILE__ __LINE__写进函数的话,每次写入的文件和行数都是,该函数在公共文件的行数,而不是调用该函数的文件的调用行数,想知道除了__LINE__以外有没有其他方法获取当前文件执行行数的方法。
日志格式如下:
[2011-07-20 15:36:49] [error: user_login] occurs from [127.0.0.1] "file: /usr/web/mysite/htdocs/index.php line:13 。" 展开
1个回答
展开全部
若是用来记录错误的话 set_error_handler 来自方错误函数收集错误信息
set_error_handler('php_error', E_ALL); //函数名,收集的错误级别
function php_error($errno, $errstr, $errfile, $errline){ //错误编号,错误信息,错误文件,错误行号
$errortype = array(
E_ERROR => 'Error',
E_WARNING => 'Warning',
E_PARSE => 'Parse',
E_NOTICE => 'Notice',
E_STRICT => 'Runtime Notice',
E_CORE_ERROR => 'Core Error',
E_CORE_WARNING => 'Core Warning',
E_COMPILE_ERROR => 'Compile Error',
E_COMPILE_WARNING => 'Compile Warning',
E_USER_ERROR => 'User Error',
E_USER_WARNING => 'User Warning',
E_USER_NOTICE => 'User Notice'
);
echo "<b>$errortype[$errno]: </b> $errstr <br/>\n<b>File ($errline):</b> $errfile <br>\n"; //输出错误信息
}
set_error_handler('php_error', E_ALL); //函数名,收集的错误级别
function php_error($errno, $errstr, $errfile, $errline){ //错误编号,错误信息,错误文件,错误行号
$errortype = array(
E_ERROR => 'Error',
E_WARNING => 'Warning',
E_PARSE => 'Parse',
E_NOTICE => 'Notice',
E_STRICT => 'Runtime Notice',
E_CORE_ERROR => 'Core Error',
E_CORE_WARNING => 'Core Warning',
E_COMPILE_ERROR => 'Compile Error',
E_COMPILE_WARNING => 'Compile Warning',
E_USER_ERROR => 'User Error',
E_USER_WARNING => 'User Warning',
E_USER_NOTICE => 'User Notice'
);
echo "<b>$errortype[$errno]: </b> $errstr <br/>\n<b>File ($errline):</b> $errfile <br>\n"; //输出错误信息
}
追问
谢谢,高手!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询