这确实是一种令人讨厌的行为。我有一个 Docker 容器,其中包括:
NGINX、PHP-FPM 和一些其他工具,我将其用作 PHP Web 应用程序(包括 Laravel 应用程序)的 Web 服务器,以及一些其他工具。非 Laravel 应用程序将 PHP 通知、警告、错误记录到日志文件中。它“正在运行”,但在日志文件中,首次创建时填充了大量空字节 ? (\x{00})(3089725 个字符)。
在 NGINX .conf 中我有:
access_log /nginx-home/logs/RIS-access.log;
error_log /nginx-home/logs/RIS-error.log info;
在其他脚本中我使用以下命令记录到不同的 .log 文件中:
ini_set("error_log", realpath(dirname(__FILE__).'/../../') . "/php-error.log");
日志文件正在运行,但开头的填充会给日志文件添加大约 4 MB 的数据。
我必须深入研究我的 docker 容器中的 NGINX 和 php-fpm 的其他设置,但我主要使用默认设置,并对 php.ini 文件进行了一些调整以用于大文件上传。我想我在 docker 中使用 php-fpm.conf 中的默认值。
日志文件看起来像这样:
用空字节填充,后跟日志条目:
[02-May-2021 08:42:10 America/Cayman] {
"Called By:": "Controller.php",
"Value:": "Action: search_orthanc"
}
[02-May-2021 08:42:10 America/Cayman] {
"Called By:": "DatabaseFactory.php",
"Value:": {
"Query:": "SELECT * from orthanc_hosts WHERE id = ?",
"Params:": [
"1"
]
}
}
除此之外,它们工作正常。日志记录主要用于开发和调试,但我就是想知道为什么它们要这样填充以及如何避免这种情况。
此外,空字节全部写入日志文件的一行中。
谢谢。