2011-03-11 46 views
0

如果有人可以帮助我提高这个功能与此格式可以使用它(从头,没有测试):目前使用的改善当前的PHP函数来处理错误

<?php 
    define("LINEA", __LINE__, true); 
    function line($string) 
    { 
    return $string . LINEA; 
    } 
    echo line('Error: '); 
?> 

例子:

<?php 
function line($startText, $line, $endText = NULL) 
{ 
    $endText = !empty($endText) ? $endText : ''; 
    return $startText . $line . $endText; 
} 
/* 
... 
lot of code 
... 
*/ 
echo line('Error on line: ', __LINE__) . '<br />'; 
/* 
... 
lot of code 
... 
*/ 
echo line('Alert - ', __LINE__, '!'); 
?> 

输出:

Error on line: 12 
Alert - 18! 

回答

1

它看起来不像你的line()函数对你有什么好处。你为什么不只要致电:

echo 'Error on line: ' . __LINE__; 
+0

好点。该功能将在课堂上实施,我会重新考虑如何去做。 – quantme 2011-03-11 19:45:13

+0

最后(由于这个4文件项目),这是我现在可以实现的最简单的解决方案。 – quantme 2011-03-17 05:02:31

2

您可以考虑使用debug_backtrace以获取有关函数调用方的信息,包括行,文件,类,当前范围等等。这样您就不需要将任何行号信息传递到错误记录功能中。

请注意,生成此信息可能会对性能造成一定影响。

您还应该考虑使用现有的日志记录程序包,如PEAR's Log,Zend_LogApache log4php

+0

我会读到debug_backtrace,这听起来很有趣。使用日志包不太有吸引力,因为我将在许多站点/服务器中实现这种错误处理;我也会阅读它们。 – quantme 2011-03-11 19:50:01

+0

如果您一遍又一遍地实施它,那么使用第三方代码的原因甚至更大。他们已经完成了创建,测试,确保工作,记录,质量等方面的所有努力。 – Charles 2011-03-11 20:09:12

+0

Zend_Log是最具吸引力的软件包,尽管我正在开发的站点仅包含几个文件。我对这个项目感兴趣。感谢您的建议。 – quantme 2011-03-17 04:59:29