这让我发疯。
我在Centos-Apache-PHP服务器(PHP 7.2.6)中安装了最新CodeIgniter(3.1.9)的完整副本。
在全球范围内,我的PHP将错误记录到(说)/var/www/logs/php_err.log
。
我检查是否确实PHP Parse error: syntax error, unexpected 'public' (T_PUBLIC)...
在任何非CI PHP页面中都记录了我的PHP错误,包括解析错误()。它还记录解析错误是否在包含的文件中发生require_once()
。
我还检查了在CI应用程序代码(控制器或模型)中是否在调用时将其记录在其中error_log("something");
。
我什至还检查是否故意破坏了CI index.php
(asd
在打开后添加一行<?php
,则解析错误会出现在我的日志中。
问题在于(例如)控制器中的解析错误(例如,删除中的第一个大括号application/controllers/Welcome.php
),给出了一个普通的500错误页面,而日志文件中没有任何内容。
通过将环境从更改为production
,development
我可以在网页中看到解析错误。但日志中仍然没有任何内容。而且,无论如何,我绝对希望日志中还有生产中的错误!
如果我将整个“ ERROR_REPORTING”块注释掉,问题仍然存在 index.php
为什么会这样呢?
默认情况下,Codeigniter使用其自己的错误报告系统。要获取错误记录,请查看config.php
下的文件$config['log_threshold'];
。变量上方有一个定义表,用于定义不同的值等于什么,但我认为可以满足$config['log_threshold'] = 1;
您的要求(默认为0,即关闭)。如果用于生产/开发的文件夹不同,则应为两个配置文件修改此变量。默认情况下,如index.php
生产所示,将通过以下行抑制输出错误:ini_set('display_errors', 0);
。
日志将显示在application/logs/
目录中,并按进行组织Y-m-d H:i:s
。
希望这能回答您的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句