以下是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天),系统自动删除旧文件。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
扩展自定义日志格式或输出到远程服务器。权限与安全
runtime/log
目录权限为755
,避免敏感信息泄露。