配置文件路径
日志配置位于 config/log.php
(需手动创建),可设置日志级别、存储路径、格式等,例如:
return [
'type' => 'file', // 日志类型(支持file/database/syslog等)
'path' => runtime_path() . 'logs/', // 存储路径(默认runtime/log/)
'level' => ['debug', 'info', 'error'], // 记录级别
'max_files' => 30, // 保留日志文件数量
'max_file_size' => 2097152, // 单个文件最大2MB(自动分割)
];
日志级别控制
debug
(调试)、info
(信息)、error
(错误)等8级。error
和 critical
级别,减少日志量。手动记录日志
使用 Log
门面快速记录:
use think\facade\Log;
Log::info('用户登录成功', ['user_id' => 1]); // 普通信息
Log::error('数据库连接失败', ['error' => $e->getMessage()]); // 错误信息
按通道拆分日志
通过 channel
参数将不同模块日志存入独立文件,如:
Log::channel('order')->info('订单创建成功', ['order_id' => 1001]);
// 日志文件路径:runtime/logs/order.log
命令行查看
使用 php think log
命令查看所有日志,支持按级别过滤:
php think log --level=error # 仅查看错误日志
自动清理策略
max_file_size
和 max_files
实现日志按大小或数量自动归档。cron
定期删除旧日志,例如:# 每天凌晨清理7天前的日志
0 0 * * * find /path/to/project/runtime/logs/ -type f -mtime +7 -delete
集中式日志(syslog)
配置 type
为 syslog
,将日志发送至Ubuntu系统日志服务,便于统一监控:
return [
'type' => 'syslog',
'facility' => LOG_LOCAL0, // 系统日志设施
'level' => ['error', 'critical'],
];
权限管理
确保 runtime/logs/
目录权限正确:
sudo chown -R www-data:www-data runtime/logs/ # 保证Web服务器用户可写
sudo chmod -R 755 runtime/logs/ # 限制权限防止未授权访问
LOG_RECORD
是否开启,路径是否可写。通过以上配置,可在Ubuntu环境中高效管理ThinkPHP日志,平衡调试需求与系统性能。