PHP记录系统日志最常用、最稳妥的方式是使用error_log()函数或基于Psr\Log标准的Monolog等第三方库;前者适合调试和轻量项目,后者支持分级、多通道、轮转等专业功能,且需遵循时间戳、请求ID、脱敏等规范。
PHP记录系统日志最常用、最稳妥的方式是使用内置的 error_log() 函数或基于 Psr\Log 标准的第三方日志库(如 Monolog)。不建议直接用 file_put_contents 或 echo 写日志,容易引发并发写入混乱、权限问题或格式不可控。
适合开发调试或轻量级项目。它默认写入 Web 服务器错误日志(如 Apache 的 error.log),也可指定文件路径:
error_log(date('Y-m-d H:i:s') . " [INFO] 用户登录成功\n", 3, '/var/log/myapp.log');
error_log("DB connection failed", 4); // 第二个参数 4 表示 syslog
Monolog 是 PHP 生态最主流的日志工具,支持日志分级、多通道输出(文件、邮件、Slack、Elastic
search 等)、自动轮转、上下文数据注入等。
composer require monolog/monolog
$log = new Logger('myapp');
$log->pushHandler(new RotatingFileHandler('/var/log/myapp/app.log', 7));
$log->info('User {id} logged in', ['id' => 123]);好日志不是记越多越好,而是要能快速定位问题。避免只写“出错了”,要包含上下文和可追溯线索:
开发写的日志,在生产环境必须考虑性能、安全与运维友好性:
基本上就这些。从 error_log 快速起步,到 Monolog 构建可扩展日志体系,关键是根据项目规模选对工具,并坚持写有意义、可检索、易维护的日志内容。