日志系统
Viswoole 日志系统提供结构化的日志记录能力,支持多通道、多级别、自动收集与批量写入,适配 Swoole 协程环境。
核心特性
- 多通道支持:不同日志可写入不同位置(文件、外部服务等)
- 协程收集:日志先缓存至当前协程,结束时批量写入,减少 I/O
- 级别路由:按日志级别自动分发到指定通道
- 来源追踪:可选记录调用来源(文件:行号)
- 控制台输出:开发环境同步输出彩色日志到控制台
- 自动清理:内置定时器按保留天数清理过期日志
文档导航
| 文档 | 说明 |
|---|---|
| 使用方法 | 日志记录基本操作 |
| 日志级别 | 各级别含义与使用场景 |
| 日志通道 | 通道配置与驱动扩展 |
| 配置详解 | 完整配置项说明 |
快速开始
php
use Viswoole\Log\Facade\Log;
// 记录不同级别的日志
Log::info('用户登录', ['user_id' => 1]);
Log::error('数据库连接失败', ['error' => $e->getMessage()]);
Log::debug('查询SQL', ['sql' => $query, 'time' => '12ms']);架构概览
text
┌──────────────────────────────────────────────┐
│ Log Facade(门面) │
├──────────────────────────────────────────────┤
│ LogManager(管理器) │
│ ┌─────────┬─────────┬─────────┐ │
│ │ Channel │ Channel │ Channel │ │
│ │ (file) │(email) │(custom) │ │
│ └────┬────┴────┬────┴────┬────┘ │
│ ▼ ▼ ▼ │
│ Collector → Recorder → Drive │
│ (收集器) (记录器) (驱动写入) │
└──────────────────────────────────────────────┘配置文件
日志配置位于 config/log.php:
php
use Viswoole\Log\Drives\File;
return [
// 默认通道
'default' => 'file',
// 按级别路由到指定通道
'type_channel' => [],
// 是否记录调用来源
'trace_source' => true,
// 是否输出到控制台
'console' => false,
// 通道定义
'channels' => [
'file' => File::class,
]
];