PHP 7.3未创建/写入错误日志文件

PHP 7.3未创建/写入错误日志文件,php,php-7,error-reporting,php-7.3,Php,Php 7,Error Reporting,Php 7.3,我刚刚升级到PHP7.3(使用XAMPP),出于某种原因,它似乎没有将错误写入指定的日志文件 我在页面输出中遇到了不推荐的错误,但它们似乎没有显示在任何日志文件中——这更理想,因为这些错误在页面显示中并不总是可见的,例如,如果它们是在属性值之间生成的,它们就会隐藏在代码中 在我的php.ini中,我有: error_reporting = E_ALL display_errors=On display_startup_errors=On log_errors=On log_errors_max_

我刚刚升级到PHP7.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本身的问题产生的,例如关于
跟踪错误的不推荐设置
),但仍然没有记录任何由页面本身引起的问题

编辑2:我已经创建了一个单独的脚本来故意生成错误,而且它们似乎没有记录好,所以我不确定其他脚本如何没有记录


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

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

C:\xampp\php\

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

trigger_error("Some info",E_USER_ERROR);
请试试这个

   <?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");
    }
    ?>

定义和用法

函数的作用是:向日志、文件或邮件发送错误消息 帐户

语法

错误日志(消息、类型、目的地、标题)

**>需要参数说明消息。指定要发送的错误消息

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

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

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

php.ini 1中的错误日志配置设置为-消息已发送

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

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

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

日志处理程序目标可选。指定文件的目标

错误消息。此值取决于类型参数的值

标题是可选的。仅当类型参数设置为1时使用

指定其他标头,如发件人、抄送和密件抄送。多标题

应使用CRLF(\r\n)技术详细信息返回分隔

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

Changelog:PHP5.2.7:将值4添加到类型参数中**


调整配置后是否重新启动php fpm服务?@edigu Apache已重新启动。另外,我今天刚刚注意到它是创建的,并且其中有其他错误(这些错误是由
php.ini
本身的问题产生的,例如不推荐的设置),但是仍然没有记录任何由页面本身引起的问题。重新启动HTTP服务器不足以进行ini更改。您应该重新启动php fpm服务,该服务接收apache转发的请求。顺便说一句,我是一个unix/mac用户,不确定php fpm是否也在HTTP服务器重启时通过xampp重启。@edigu是的,这就足够了,
.ini
更改在Apache重启后可以正常工作。Put
是什么让你认为该文件夹不存在?OP声明其他错误已记录在预期文件中