发布于2026-07-07 阅读(0)
扫一扫,手机访问
在Ubuntu系统上折腾ThinkPHP的日志管理,其实并不复杂,但有几个关键点值得留意。下面就从配置、写入、查看、切割到清理,一步步梳理清楚。

所有日志行为的基础,都在配置文件里。找到项目application目录下的config.php(或者你用的版本对应的配置入口),找到或添加log配置段。这里有几个核心参数值得关注:
return [
// ...
'log' => [
'type' => 'File', // 日志类型,File、Socket、Monolog等
'path' => runtime_path() . 'logs', // 日志存放路径
'level' => ['error', 'info'], // 记录级别,可以组合多个
'max_file' => 5, // 最大保留日志文件数量
'max_size' => 2097152, // 单个文件最大大小(KB)
'day_limiter' => true, // 是否按天切割文件
],
// ...
];
简单解释一下:type选File就能满足大部分场景;level控制哪些级别的日志被记录,比如只记error和info,debug日志就不会写入;max_file和max_size是自动清理的阀门;day_limiter打开后,日志会自动按天分文件,避免单个文件无限膨胀。
代码里写入日志非常直接,用ThinkPHP内置的Log门面就能搞定:
use think\facade\Log;
Log::error('这是一个错误日志');
Log::info('这是一个信息日志');
Log::warn('这是一个警告日志');
Log::debug('这是一个调试日志');
注意:只有配置中level数组里包含的级别才会真的写入文件。比如你只配置了['error','info'],那Log::warn和Log::debug的调用虽然不会报错,但不会产生任何记录。所以实际开发中,建议把常用级别都加进去,或者干脆不限制级别,在业务代码里按需控制。
在Ubuntu终端里实时跟踪日志变化,最常用的就是tail命令。假设你的项目根目录下日志文件路径是runtime/logs/think.log:
tail -f runtime/logs/think.log
加上-f参数后,终端会保持监听,新写入的日志会自动滚动出来。排查线上问题时,这个命令几乎是必备技能。如果想只查看最近N行,可以用tail -n 100。
如果打开了day_limiter,每天会自动生成一个独立文件,文件名通常包含日期。配合max_file参数,当文件数量超过设定值时,最老的日志文件会被自动删除。用ls命令就能看到切割后的情况:
ls runtime/logs
你会看到类似2025-06-06.log、2025-06-07.log这样的文件。如果没有开启按天切割,但开启了max_size,那么单个文件写满后会自动轮转,比如think.log变成think.log.1,以此类推。
自动清理机制虽然省心,但有时也需要手动干预。比如磁盘空间告急,或者你只想保留最近几天的日志。使用rm命令可以快速清理:
rm -rf runtime/logs/*
注意:这个命令会删除runtime/logs目录下的所有文件,而且不可恢复。操作前最好确认一下是否有需要备份的日志数据,尤其在生产环境中,建议先压缩打包再删除。
总的来说,ThinkPHP在Ubuntu下的日志管理就是“配置→写入→查看→自动切割→手动清理”这条链路,核心是配置文件里的那几项参数,理解了它们,后续的运维就顺畅多了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8