温馨提示×

ubuntu php日志格式怎样

小樊
35
2026-09-30 15:15:40
栏目: 编程语言

在 Ubuntu 上,PHP 的“日志格式”取决于 PHP 的运行方式(CLI / PHP-FPM / Apache mod_php) 以及 日志配置位置。下面分情况说明。


一、PHP 错误日志(最常见)

1️⃣ PHP 自身错误日志(error_log)

配置位置:

/etc/php/8.1/cli/php.ini
/etc/php/8.1/fpm/php.ini

关键配置:

log_errors = On
error_log = /var/log/php/php_errors.log

日志格式示例:

[12-Jul-2024 10:23:45 Asia/Shanghai] PHP Warning:  Undefined variable $test in /var/www/html/index.php on line 10
[12-Jul-2024 10:23:46 Asia/Shanghai] PHP Fatal error:  Uncaught Error: Call to undefined function test() in /var/www/html/index.php:15

✅ 格式特点:

  • 时间格式:[日期 时间 时区]
  • 日志级别:PHP Warning / PHP Notice / PHP Fatal error
  • 包含文件名和行号

二、PHP-FPM 日志格式(Ubuntu 常见)

2️⃣ PHP-FPM 错误日志

配置文件:

/etc/php/8.1/fpm/php-fpm.conf
/etc/php/8.1/fpm/pool.d/www.conf

示例配置:

error_log = /var/log/php8.1-fpm.log
catch_workers_output = yes

日志格式:

[12-Jul-2024 10:25:11] WARNING: [pool www] child 1234 said into stderr: "PHP message: Undefined index: id"
[12-Jul-2024 10:25:12] ERROR: failed to ptrace(ATTACH)

3️⃣ PHP-FPM 慢日志(slow log)

slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 5s

格式示例:

[12-Jul-2024 10:30:00]  [pool www] pid 5678
script_filename = /var/www/html/index.php
[0x00007f...] sleep() /var/www/html/index.php:20

三、Apache + PHP(mod_php)

4️⃣ Apache 错误日志

/var/log/apache2/error.log

格式示例:

[Thu Jul 12 10:35:00.123456 2024] [php:warn] [pid 2345] [client 127.0.0.1:5000] PHP Warning:  Undefined variable $a in /var/www/html/test.php on line 5

四、CLI 模式日志

CLI 通常不会写日志文件,而是直接输出到终端:

php index.php

输出:

PHP Warning:  Undefined variable $test in /path/index.php on line 10

五、自定义日志格式(可用)

PHP 本身不支持像 Nginx 那样自定义访问日志格式,但你可以:

✅ 使用 error_log() 自定义内容
✅ 使用 Monolog 等日志库
✅ 在应用层统一格式,例如:

error_log(date('Y-m-d H:i:s') . " | ERROR | " . $msg);

六、快速查看日志命令

tail -f /var/log/php/php_errors.log
tail -f /var/log/php8.1-fpm.log
tail -f /var/log/apache2/error.log

如果你愿意,可以告诉我:

  • PHP 版本(7.4 / 8.1 / 8.2?)
  • 运行方式(Nginx + FPM / Apache)
  • 想改日志格式还是只是查看

我可以直接给你可用的配置文件示例。

0 踩