ThinkPHP 在 Ubuntu 的日志查看与管理
一 日志位置与目录结构
/var/www/your-app/runtime/log/2025-12/12.log。这些路径与常量便于你快速定位日志位置。二 快速查看与检索
tail -f runtime/log/$(date +%Y-%m)/$(date +%d).logtail -f runtime/log/$(date +%Y-%m)/*.loggrep -n --color=auto 'error' runtime/log/2025-12/*.logless runtime/log/2025-12/12.log(支持 /关键词 搜索,按 q 退出)tail -n 200 runtime/log/2025-12/12.logsudo tail -f /var/log/php*-fpm.log 或 sudo tail -f /var/log/apache2/error.log;系统级实时日志可用 sudo journalctl -f。以上命令覆盖日常排查的高频场景。三 日志级别与数据库 SQL 日志
'log' => [
'type' => 'File',
'path' => '../runtime/log/',
'level' => ['error'],
]
常用级别包含 debug、info、notice、error,生产环境建议仅保留必要级别以减少磁盘占用与信息泄露风险。'log' => [
'type' => 'File',
'path' => LOG_PATH,
'level' => ['sql'],
]
开启后,SQL 执行信息会写入 runtime/log/(部分版本在 runtime/sql/)。use think\Db;
echo Db::getLastSql();
$logs = Db::getQueryLog();
print_r($logs);
注意仅在调试环境使用,避免在生产环境输出敏感信息。四 日志轮转与清理
2024-*.log),或压缩备份后再清理,避免占用过多磁盘空间。'log' => [
'type' => 'file',
'path' => LOG_PATH,
'clear_time' => 1, // 按天清理
]
若你的版本无此配置项,可结合系统级 logrotate 或计划任务实现按天/按大小轮转与清理(示例:logrotate -f /etc/logrotate.conf)。