我想在某个cronjob期间抑制codeigniter错误日志中的通知.我已尝试在行前使用@,但它仍会在日志中打印通知:
这是生成通知的行:
@$resultarray[1][2]++;
Run Code Online (Sandbox Code Playgroud)
通知:......严重性:通知 - >未定义的偏移量:1 ...
我在这做错了什么?
(我使用得很好,所以请不要声称不要使用@,谢谢:))
要让PHP报告除E_Notice之外的所有错误,请调用PHP error_reporting函数,如下所示:
error_reporting(E_ALL & ~E_NOTICE);
Run Code Online (Sandbox Code Playgroud)
我认为最好的方法是在应用程序的根目录配置index.php,首先检测应用程序环境,然后有条件地设置报告的PHP错误.
的index.php
if (defined('ENVIRONMENT'))
{
switch (ENVIRONMENT)
{
case 'development':
case 'testing':
case 'staging':
error_reporting(E_ALL & ~E_NOTICE);
break;
case 'production':
error_reporting(0);
break;
default:
exit('The application environment is not set correctly.');
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多配置选项,请参阅有关error_reporting函数的官方PHP文档.
或者,您可以在您正在使用的特定文件中调用error_reporting函数(无论您的cron作业调用),它将使用您在index.php中设置的内容覆盖配置.这是一个使用控制器的简单示例:
class Sample_Controller extends CI_Controller {
public function __construct()
{
parent::__construct();
error_reporting(E_ALL & ~E_NOTICE);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17252 次 |
| 最近记录: |