配置文件路径
日志配置位于 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日志,平衡调试需求与系统性能。