【问题标题】:PHP 7.3 not creating/writing to error log filePHP 7.3 未创建/写入错误日志文件
【发布时间】:2019-07-20 13:16:27
【问题描述】:

我刚刚升级到 PHP 7.3(使用 XAMPP),由于某种原因,它似乎没有将错误写入指定的日志文件。

我在页面输出中遇到不推荐使用的错误,但它们似乎没有显示在任何日志文件中 - 这是更理想的方式,因为错误并不总是在页面显示中可见,它们隐藏在代码中例如,如果它们是在属性值之间生成的。

在我的php.ini 我有:

error_reporting = E_ALL
display_errors=On
display_startup_errors=On
log_errors=On
log_errors_max_len = 2048
ignore_repeated_errors=Off
ignore_repeated_source=Off
report_memleaks=On
report_memleaks=On
html_errors=On
error_log="C:\xampp\php\logs\php_error_log"

编辑:我今天刚刚注意到该文件是最近创建的,其中还有其他错误(由 php.ini 本身的问题产生的错误,例如关于 track_errors 的弃用设置),但仍然没有得到任何关于页面本身引起的问题的记录。

编辑 2:我创建了一个单独的脚本来故意生成错误,但它们似乎没有正常记录,所以我不确定这些其他的如何没有记录。

为什么我没有从页面记录错误?

【问题讨论】:

  • 调整配置后是否重启了php-fpm服务?
  • @edigu Apache 已重新启动。另外,我今天刚刚注意到它已创建并且其中存在其他错误(由php.ini 本身的问题产生的错误,例如已弃用的设置),但仍然没有记录任何关于页面本身引起的问题的记录。
  • 重启 HTTP 服务器不足以进行 ini 更改。您应该重新启动接收 apache 转发的请求的 php-fpm 服务。顺便说一句,我是一个 unix/mac 人,不确定 php-fpm 是否也在 HTTP 服务器重新启动时由 xampp 重新启动。
  • @edigu 是的,这就够了,.ini 的更改在 Apache 重启后工作正常。
  • <?php phpinfo(); 放入一个文件并转到页面以检查您实际使用的版本和您认为的INI 文件

标签: php php-7 error-reporting php-7.3


【解决方案1】:

请试试这个

   <?php
    // Send error message to the server log if error connecting to the database
    if (!mysqli_connect("localhost","bad_user","bad_password","my_db")) {
        error_log("Failed to connect to database!", 0);
    }
    
    // Send email to administrator if we run out of FOO
    if (!($foo = allocate_new_foo())) {
        error_log("Oh no! We are out of FOOs!", 1, "admin@example.com");
    }
    ?>

定义和用法

error_log() 函数将错误消息发送到日志、文件或邮件 帐户。

语法

error_log(消息、类型、目的地、标头);

**> 参数 描述 message 必需。将错误消息指定为

日志类型可选。指定错误消息的位置。

可能的值:0 - 默认值。消息被发送到 PHP 的系统记录器,

使用操作系统的系统日志记录机制或文件,具体取决于什么

error_log 配置在 php.ini 中设置为 1 - Message is sent

通过电子邮件发送到目标参数 2 中的地址 - 不再在

使用(仅在 PHP 3 中可用) 3 - 将消息附加到文件中

在目标 4 中指定 - 消息直接发送到 SAPI

日志记录处理程序目标 可选。指定目的地

错误信息。这个值取决于类型参数的值

标题 可选。仅在 type 参数设置为 1 时使用。

指定其他标题,例如 From、Cc 和 Bcc。多个标题

应该用 CRLF 分隔 (\r\n) 技术细节返回

值:成功时为 TRUE,失败时为 FALSE PHP 版本:4.0+ PHP

变更日志:PHP 5.2.7:将值 4 添加到类型参数**

【讨论】:

    【解决方案2】:

    您需要在 上创建 logs 文件夹,确保您的 XAMPP 安装在 C:\

    C:\xampp\php\

    然后在 XAMPP 中重新启动您的 Apache 并尝试使用

    创建一个致命错误
    trigger_error("Some info",E_USER_ERROR);
    

    【讨论】:

    • 是什么让您认为该文件夹不存在? OP 表示其他错误已记录在预期文件中
    猜你喜欢
    • 2013-07-19
    • 1970-01-01
    • 2017-01-17
    • 2020-05-14
    • 1970-01-01
    • 2018-06-28
    • 2016-08-19
    • 2012-01-30
    • 1970-01-01
    相关资源
    最近更新 更多