thinkphp在ubuntu中的日志如何查看与管理
导读:ThinkPHP 在 Ubuntu 的日志查看与管理 一 日志位置与目录结构 默认情况下,应用日志位于项目的 runtime/log/ 目录;按日期(常见为年-月)分文件,例如 runtime/log/2025-12/ 下的 12.log...
ThinkPHP 在 Ubuntu 的日志查看与管理
一 日志位置与目录结构
- 默认情况下,应用日志位于项目的 runtime/log/ 目录;按日期(常见为年-月)分文件,例如 runtime/log/2025-12/ 下的 12.log。部分版本或配置还会生成 runtime/sql/ 目录用于记录 SQL 执行日志。若项目自定义了运行时目录,日志路径会随之变化。常用的目录常量包括:RUNTIME_PATH(运行时目录,默认 ROOT_PATH.‘runtime/’)、LOG_PATH(日志目录,默认 RUNTIME_PATH.‘log/’)。示例路径:
/var/www/your-app/runtime/log/2025-12/12.log。这些路径与常量便于你快速定位日志位置。
二 快速查看与检索
- 实时查看当天日志(进入项目根目录后):
tail -f runtime/log/$(date +%Y-%m)/$(date +%d).log - 查看本月日志:
tail -f runtime/log/$(date +%Y-%m)/*.log - 按关键字过滤(如 error):
grep -n --color=auto 'error' runtime/log/2025-12/*.log - 分页查看大文件:
less runtime/log/2025-12/12.log(支持/关键词搜索,按 q 退出) - 查看文件末尾 N 行:
tail -n 200 runtime/log/2025-12/12.log - 结合系统日志定位 Web/PHP 层错误(如 FPM 或 Apache):
sudo tail -f /var/log/php*-fpm.log或sudo tail -f /var/log/apache2/error.log;系统级实时日志可用sudo journalctl -f。以上命令覆盖日常排查的高频场景。
三 日志级别与数据库 SQL 日志
- 调整应用日志级别(仅记录错误):在配置中设置
常用级别包含 debug、info、notice、error,生产环境建议仅保留必要级别以减少磁盘占用与信息泄露风险。'log' => [ 'type' => 'File', 'path' => '../runtime/log/', 'level' => ['error'], ] - 输出 SQL 日志到文件:在日志配置中开启 SQL 级别
开启后,SQL 执行信息会写入 runtime/log/(部分版本在 runtime/sql/)。'log' => [ 'type' => 'File', 'path' => LOG_PATH, 'level' => ['sql'], ] - 在代码中获取 SQL(调试用):
注意仅在调试环境使用,避免在生产环境输出敏感信息。use think\Db; echo Db::getLastSql(); $logs = Db::getQueryLog(); print_r($logs);
四 日志轮转与清理
- 手动清理:定期归档或删除 runtime/log/ 下历史月份目录(如
2024-*.log),或压缩备份后再清理,避免占用过多磁盘空间。 - 自动清理(按天):部分版本支持在日志配置中设置自动清理时间,例如
若你的版本无此配置项,可结合系统级 logrotate 或计划任务实现按天/按大小轮转与清理(示例:'log' => [ 'type' => 'file', 'path' => LOG_PATH, 'clear_time' => 1, // 按天清理 ]logrotate -f /etc/logrotate.conf)。 - 权限与归属:日志文件通常由 PHP-FPM 进程用户创建(如 www-data 或 nginx)。如出现无法写入,检查目录属主与权限,确保 PHP-FPM 运行用户对 runtime/ 及其子目录具备写权限。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: thinkphp在ubuntu中的日志如何查看与管理
本文地址: https://pptw.com/jishu/771167.html
