首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >CodeIgniter似乎接受(而不是记录) PHP解析错误。为什么?

CodeIgniter似乎接受(而不是记录) PHP解析错误。为什么?
EN

Stack Overflow用户
提问于 2018-06-16 07:56:05
回答 1查看 302关注 0票数 1

这快把我逼疯了。

我在Centos-Apache-PHP服务器(PHP7.2.6)中安装了最新的CodeIgniter (3.1.9)的干净副本。

在全局上,我的PHP将错误记录到(比如说) /var/www/logs/php_err.log

我检查是否确实在那里记录了我的PHP错误,包括任何非CI页面中的解析错误(PHP Parse error: syntax error, unexpected 'public' (T_PUBLIC)...)。它还会记录在require_once()包含的文件中是否发生解析错误。

我还检查在CI应用程序代码(控制器或模型)中,当我调用error_log("something");时,它是否记录在那里。

我甚至检查如果我故意破坏CI的index.php (在打开的<?php之后添加一个asd行,解析错误就会出现在我的日志中。

问题是,(比方说)控制器中的解析错误(例如,删除application/controllers/Welcome.php中的第一个括号)会给出一个简单的500错误页面,并且在日志文件中nothing。

通过将环境从production更改为development,我可以在网页中看到解析错误。但日志里还是什么都没有。而且,在任何情况下,我绝对希望在日志中出现错误,在生产中也是如此!

如果我注释掉index.php中的整个"ERROR_REPORTING“块,问题仍然存在

为什么会发生这种情况?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-16 08:16:04

默认情况下,Codeigniter使用自己的错误报告系统。要将错误记录到日志中,请查看$config['log_threshold'];下的config.php文件。在变量上面有一个定义表,定义了不同的值意味着什么,但我认为$config['log_threshold'] = 1;可以满足您的需要(默认情况下它是0,即关闭)。如果您有用于生产/开发的不同文件夹,那么您应该修改这两个配置文件的这个变量。默认情况下,如index.php中所示,通过以下行从输出中抑制生产错误:ini_set('display_errors', 0);

日志将出现在application/logs/目录中,并由Y-m-d H:i:s组织。

希望这能回答你的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50883931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档