日志系统

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,
    ]
];