升级到CodeIgniter 2.0,但现在我的php错误没有出现在日志中,我该怎么办?

时间:2011-03-09 18:45:42

标签: php codeigniter logging

好的,所以我使用CodeIgniter 1.7.3编写了一个应用程序,一切都很花哨。

然后我转移到CodeIgniter 2.0并且一切正常,除非现在它在我的php_error.log中没有显示错误

所以例如,如果我在方法名称中输入了一个拼写错误,我曾经得到类似的东西:

  

[04-Feb-2011 16:20:01] PHP致命错误:在第61行的/Applications/MAMP/htdocs/application/controllers/some_controller.php中调用未定义的方法Some_controller :: my_method()

现在我什么都没得到。只是浏览器窗口中的500个servlet异常。

到目前为止,我已经检查了我的php.ini 其中error_reporting = E_ALL且log_errors = On 还有display_errors = On(即使我认为这会记录到屏幕上没有文件)

我刚试过一个故意破坏的非codeigniter php文件,我的日志中出现错误,如:

  

[10-Mar-2011 02:47:02] PHP致命错误:在第2行的/Applications/MAMP/htdocs/test.php中调用未定义的函数fake_method()

因此它似乎只是没有记录的codeigniter。

我的config / config.php的日志记录设置如下:$ config ['log_threshold'] = 4;

index.php也有error_reporting(E_ALL);

当我没有获得行号时调试这么痛苦...... 任何人都可以告诉我还有什么我应该更改/检查以恢复我的日志记录吗?

4 个答案:

答案 0 :(得分:1)

确保index.php的错误报告设置为ALL

error_reporting(E_ALL);

要显示日志中的错误,请在第181行检查您的配置。如果将其设置为 $config['log_threshold'] = 4;

这将记录所有内容......

答案 1 :(得分:0)

尝试设置ini_set('display_erros',1);

答案 2 :(得分:0)

所以我发现我已经自动加载了一个库(paypal_lib),由于某些原因,它在其顶部有error_reporting(0)。

答案 3 :(得分:0)

也可能值得注意的是,如果您定义了环境但未使用它们,则在“生产”和“测试”中设置error_reporting(0)。请参见index.php第31行:

if (defined('ENVIRONMENT')) {
switch (ENVIRONMENT)
{
    case 'development':
        error_reporting(E_ALL);
    break;

    case 'testing':
    case 'production':
        error_reporting(0);
    break;

    default:
        exit('The application environment is not set correctly.');
}
}