以下是ThinkPHP在Ubuntu上的日志管理技巧:
一、基础配置
-
配置文件
修改config/log.php,设置日志存储路径(默认runtime/log)、级别(如['error', 'warning'])、驱动类型(file/database等)。return [ 'default' => 'file', 'channels' => [ 'file' => [ 'type' => 'file', 'path' => runtime_path('log'), 'level' => ['error', 'info'], 'max_files' => 30, // 保留30天日志 ], ], ]; -
日志级别
支持debug、info、error等,通过Log::level动态调整或配置文件设置。Log::info('普通信息', ['user_id' => 1]); // 记录带上下文的信息
二、日志查看与分析
-
命令行工具
- 使用
php think log查看所有日志。 - 结合
grep/awk筛选关键信息,如grep "error" runtime/log/*.log。
- 使用
-
实时监控
用tail -f runtime/log/当前日期.log查看实时日志。
三、日志清理与归档
-
手动清理
删除runtime/log目录下过期日志文件。 -
自动清理
- 配置
max_files限制日志文件数量(如30天),系统自动删除旧文件。 - 使用Ubuntu定时任务(
cron)定期清理,例如每天凌晨清理7天前日志:# 编辑定时任务 crontab -e # 添加以下内容(每天0点执行) 0 0 * * * find /项目路径/runtime/log -type f -mtime +7 -name "*.log" -exec rm -f {} \;
- 配置
四、高级管理技巧
-
多通道日志
配置不同通道(如文件、数据库、邮件),重要错误同时输出到多个目标。// 配置邮件报警通道 'channels' => [ 'email_alert' => [ 'type' => 'email', 'receivers' => ['admin@example.com'], 'level' => ['emergency'], ], ]; -
集成专业工具
- 使用
Monolog扩展自定义日志格式或输出到远程服务器。 - 结合ELK Stack(Elasticsearch+Logstash+Kibana)实现日志的集中化、可视化分析。
- 使用
-
权限与安全
- 确保
runtime/log目录权限为755,避免敏感信息泄露。 - 避免在日志中记录密码等敏感数据。
- 确保