GoWind 开源生态GoWind 开源生态
首页
框架
GoWind Admin
GoWind CMS
GoWind IM
GoWind UBA
GoWind IoT
GoWind Toolkit
GoWind Quant
GitHub
首页
框架
GoWind Admin
GoWind CMS
GoWind IM
GoWind UBA
GoWind IoT
GoWind Toolkit
GoWind Quant
GitHub
  • 介绍

    • GoWind 框架
    • 框架整体架构
  • go-wind 核心

    • go-wind 核心框架
    • App 生命周期管理
    • Context 传播
    • Transport 抽象
    • Log 门面接口
  • go-wind-plugins 插件

    • go-wind-plugins 插件总览
    • 插件配置系统
    • 插件注册机制(SPI)
    • 日志适配插件
    • 传输协议插件
    • 消息中间件插件
    • 编码解码插件
    • 安全与认证插件
    • 链路追踪插件
    • 缓存插件
    • 对象存储插件(OSS)
    • 限流插件
    • 指标监控插件
    • AI 插件
    • 工作流插件
    • 数据库与缓存插件
    • Bootstrap 集成与网关插件
    • 压缩与序列化插件
    • 模板渲染与验证插件
  • go-wind-bootstrap 启动器

    • go-wind-bootstrap 声明式启动器
    • Bootstrap 配置系统
    • Bootstrap SPI 机制
    • 声明式中间件编排
    • Bootstrap CLI 工具
    • Bootstrap 实战示例
  • 教程

    • 快速入门教程
    • 自定义插件开发教程
    • 多协议同时监听教程
    • 框架迁移指南

日志适配插件

go-wind-plugins 提供多种日志适配器,实现 log.Logger 接口。导入即用,无需手动调用 log.SetLogger。

一、适配器列表

适配器导入路径特点
Zapplugins/log/zap高性能结构化日志, Uber 开源
Zerologplugins/log/zerolog零分配 JSON 日志
Logrusplugins/log/logrus社区流行,生态丰富
Lokiplugins/log/lokiGrafana Loki 远程日志聚合
Sentryplugins/log/sentrySentry 错误追踪集成
CloudWatchplugins/log/cloudwatchAWS CloudWatch Logs
Aliyun SLSplugins/log/aliyun_sls阿里云日志服务

二、Zap 适配器

2.1 基本使用

import (
    _ "github.com/tx7do/go-wind-plugins/log/zap"
)

// init() 自动注册为全局 Logger
// 直接使用 log 包即可
log.Info("service started", log.String("addr", ":8080"))
log.Error("connection failed", log.Err(err))

2.2 手动配置

import zapPlugin "github.com/tx7do/go-wind-plugins/log/zap"

logger := zapPlugin.NewLogger(
    zapPlugin.WithLevel("debug"),
    zapPlugin.WithFormat("json"),        // json | console
    zapPlugin.WithOutput("stdout"),      // stdout | stderr | file path
    zapPlugin.WithFileName("app.log"),
    zapPlugin.WithMaxSize(100),          // MB
    zapPlugin.WithMaxBackups(7),
    zapPlugin.WithMaxAge(30),            // days
    zapPlugin.WithCompress(true),
)
log.SetLogger(logger)

2.3 YAML 配置

log:
  zap:
    level: info
    format: json
    output: stdout
    # 文件日志
    file:
      enabled: true
      filename: logs/app.log
      max_size: 100        # MB
      max_backups: 7
      max_age: 30          # days
      compress: true

三、Zerolog 适配器

import _ "github.com/tx7do/go-wind-plugins/log/zerolog"
log:
  zerolog:
    level: info
    format: json           # zerolog 默认 JSON
    output: stdout
    time_format: rfc3339   # unix | rfc3339 | rfc3339nano
    no_color: false

特点:

  • 零分配,性能极高
  • 原生 JSON 输出
  • 适合高吞吐场景

四、Logrus 适配器

import _ "github.com/tx7do/go-wind-plugins/log/logrus"
log:
  logrus:
    level: info
    format: text           # text | json
    output: stdout
    report_caller: true
    full_timestamp: true

特点:

  • 社区生态最丰富
  • Hook 机制支持扩展
  • 兼容性最好

五、Loki 远程日志

import _ "github.com/tx7do/go-wind-plugins/log/loki"
log:
  loki:
    level: info
    url: "http://loki:3100/loki/api/v1/push"
    labels:
      service: my-service
      env: production
    batch_size: 100
    batch_timeout: 5s
    buffer_size: 10000

特点:

  • 日志直接推送到 Grafana Loki
  • 支持标签筛选
  • 批量推送减少网络开销

六、Sentry 错误追踪

import _ "github.com/tx7do/go-wind-plugins/log/sentry"
log:
  sentry:
    level: error           # 只上报 error 及以上
    dsn: "https://xxx@sentry.io/123"
    environment: production
    release: "v1.0.0"
    sample_rate: 1.0       # 采样率

特点:

  • Error 及以上级别上报到 Sentry
  • 自动捕获堆栈
  • 支持采样率控制

七、CloudWatch

import _ "github.com/tx7do/go-wind-plugins/log/cloudwatch"
log:
  cloudwatch:
    level: info
    region: us-east-1
    log_group: /ecs/my-service
    log_stream: app-2024-01-01
    batch_size: 100
    batch_timeout: 5s

八、Aliyun SLS

import _ "github.com/tx7do/go-wind-plugins/log/aliyun_sls"
log:
  aliyun_sls:
    level: info
    endpoint: "cn-hangzhou.log.aliyuncs.com"
    project: my-project
    logstore: app-logs
    access_key_id: ${ALIYUN_AK}
    access_key_secret: ${ALIYUN_SK}

九、性能对比

适配器吞吐(ops/s)分配/次适用场景
Zap~2,000,0000高性能服务
Zerolog~2,500,0000超高吞吐
Logrus~300,0005通用场景
Loki网络依赖N/A日志聚合
Sentry网络依赖N/A错误监控

相关文档

  • Log 门面接口
  • 插件配置系统
  • 插件总览
Edit this page
Last Updated:: 6/21/26, 9:28 PM
Contributors: Bobo
Prev
插件注册机制(SPI)
Next
传输协议插件