PHP 7 - error_log 中没有记录异常。 error_log 根本没有得到处理

Posted

技术标签:

【中文标题】PHP 7 - error_log 中没有记录异常。 error_log 根本没有得到处理【英文标题】:PHP 7 - Exception does not get logged in error_log. error_log not geterated at all 【发布时间】:2018-11-08 06:41:00 【问题描述】:

以下php代码是用PHP7运行的:

<?php

ini_set('log_errors',1);

error_reporting(0);

throw new Exception('some exception here');

?>

抛出异常,但不是'catch'-ed。

为什么没有生成“error_log”文件? error_reporting(0) 是否也抑制异常?

删除“error_reporting(0)”会按预期生成 error_log 文件。

如何仅在 error_log 中记录未捕获的异常,但使用 error_reporting(0) 抑制其他错误?

【问题讨论】:

【参考方案1】:

error_reporting(0) 正在关闭错误报告。您可能会将其与将它们输出到管道的 display_errors 混淆。

请参阅http://php.net/manual/en/errorfunc.constants.php,了解可以调整日志记录工作方式的各种参数列表。

【讨论】:

【参考方案2】:
error_reporting(E_ALL);
ini_set("display_errors", 1);

添加这些行并删除

error_reporting(0);

【讨论】:

display_errors 用于将它们输出到标准输出管道。如果他想要的只是输出到error_log,他应该不需要display_errors。

以上是关于PHP 7 - error_log 中没有记录异常。 error_log 根本没有得到处理的主要内容,如果未能解决你的问题,请参考以下文章

如果 error_log 指令只是说“error_log”,那么 PHP 错误会记录到哪里?

什么在 php 中更快:syslog、文件附加或 error_log

如何将 PHP error_log 错误消息记录到 Apache 服务器 error_log?

PHP配置文件中与错误相关选项

php 不记录错误 log_errors=on,error_log 路径存在

信息日志的 PHP error_log 等价物?