使用 file_put_contents 和 error_log 可实现 PHP CLI 脚本的日志记录,推荐封装函数并加锁防冲突,注意路径权限与敏感信息保护,生产环境宜用 Monolog。

在使用PHP进行命令行脚本开发时,日志记录是排查问题、监控运行状态的重要手段。虽然CLI模式下没有浏览器输出的直观性,但通过简单的文件写入或系统日志方式,可以高效实现信息追踪。
最直接的日志记录方法是将信息写入本地文件。PHP 的 file_put_contents 函数支持追加模式,非常适合记录命令行脚本的执行日志。
示例代码:
$logMessage = date('Y-m-d H:i:s') . ' - 执行了某个操作' . PHP_EOL;
file_put_contents('/tmp/script.log', $logMessage, FILE_APPEND);
说明:
- FILE_APPEND 标志确保每次写入不会覆盖原有内容
- 使用 PHP_EOL 保证换行符跨平台兼容
- 日志路径建议使用绝对路径,避免因工作目录不同导致写入失败
为了提高复用性,可封装一个通用的日志记录函数。
function logMessage($message, $logFile = '/tmp/php_script.log') {
$entry = sprintf("[%s] %s%s", date('Y-m-d H:i:s'), $message, PHP_EOL);
file_put_contents($logFile, $entry, FILE_APPEND | LOCK_EX);
}
// 使用示例
logMessage('脚本开始执行');
logMessage('处理完成,共耗时 2.5 秒');
注意:
- 加入 LOCK_EX 参数防止多进程写入冲突
- 可根据需要扩展日志级别(info、error 等)
- 建议对日志目录存在性做判断,避免写入失败
PHP 的 error_log 不仅可用于错误记录,在CLI下也能定向输出到指定文件。
立即学习“PHP免费学习笔记(深入)”;
error_log("用户导入任务启动\n", 3, "/var/log/myapp.log");
其中第二个参数为消息类型:
- 3 表示追加到指定文件
这种方式更轻量,且能结合系统日志机制统一管理。
实际使用中需关注以下几点:
基本上就这些。对于大多数命令行脚本,简单的文件追加写入已足够满足调试和监控需求,关键是保持格式统一、路径明确、内容清晰。
以上就是PHP命令怎么实现日志记录_PHP命令行日志记录与文件写入方法的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号