📋 变更日志

本项目的所有重要变更都将记录在此文件中。

格式基于 Keep a Changelog,本项目遵循 语义化版本

[未发布]

新增

  • 全面的多语言文档(7 种语言)
  • GitHub issue 模板(错误报告、功能请求、问题)
  • 带有构建标签兼容性检查的 Pull Request 模板
  • 多语言贡献指南
  • 带有执行准则的行为准则
  • 带有漏洞报告流程的安全政策
  • 带有示例的完整 API 文档
  • 专业的项目结构和模板

变更

  • 增强了 README,包含全面的功能文档
  • 改进了所有构建标签配置的测试覆盖率
  • 更新了项目结构以提高可维护性

文档

  • 为所有主要文档添加了多语言支持
  • 创建了全面的 API 参考
  • 建立了贡献工作流程指南
  • 实现了安全报告流程

[1.0.0] - 2024-01-01

新增

  • 具有多日志级别的核心日志功能(Trace、Debug、Info、Warn、Error、Fatal、Panic)
  • 带有对象池的线程安全日志器实现
  • 构建标签支持(默认、调试、发布、丢弃模式)
  • 带有默认文本格式化器的自定义格式化器接口
  • 多写入器输出支持
  • 用于高吞吐量场景的异步写入功能
  • 自动按小时日志文件轮换
  • 带有 goroutine ID 和跟踪 ID 跟踪的上下文感知日志
  • 带有可配置堆栈深度的调用者信息
  • 全局包级便捷函数
  • Zap 日志器集成支持

性能

  • 使用 sync.Pool 对条目对象和缓冲区进行对象池化
  • 早期级别检查以避免昂贵的操作
  • 用于非阻塞日志写入的异步写入器
  • 针对不同环境的构建标签优化

构建标签

  • 默认:具有调试消息的完整功能
  • 调试:增强的调试信息和调用者详细信息
  • 发布:生产优化,禁用调试消息
  • 丢弃:最大性能,无操作日志操作

核心功能

  • Logger:具有可配置级别、输出、格式化器的主日志器结构
  • Entry:带有全面元数据的日志记录结构
  • Levels:从 Panic(最高)到 Trace(最低)的七个日志级别
  • Formatters:可插拔的格式化系统
  • Writers:文件轮换和异步写入支持
  • Context:Goroutine ID 和分布式跟踪支持

API 亮点

  • 带有方法链的流畅配置 API
  • 简单和格式化日志方法(.Info().Infof()
  • 用于隔离配置的日志器克隆
  • 带有 CloneToCtx() 的上下文感知日志
  • 前缀和后缀消息自定义
  • 调用者信息切换

测试

  • 覆盖率为 93.5% 的全面测试套件
  • 多构建标签测试支持
  • 自动化测试工作流程
  • 性能基准测试

[0.9.0] - 2023-12-15

新增

  • 初始项目结构
  • 基本日志功能
  • 基于级别的过滤
  • 文件输出支持

变更

  • 通过对象池改进了性能
  • 增强了错误处理

[0.8.0] - 2023-12-01

新增

  • 多写入器支持
  • 自定义格式化器接口
  • 异步写入功能

修复

  • 高吞吐量场景中的内存泄漏
  • 并发访问中的竞态条件

[0.7.0] - 2023-11-15

新增

  • 用于条件编译的构建标签支持
  • Trace 和调试级别日志
  • 调用者信息跟踪

变更

  • 优化了内存分配模式
  • 改进了线程安全性

[0.6.0] - 2023-11-01

新增

  • 日志轮换功能
  • 上下文感知日志
  • Goroutine ID 跟踪

已弃用

  • 旧的配置方法(将在 v1.0.0 中移除)

[0.5.0] - 2023-10-15

新增

  • JSON 格式化器
  • 多个输出目标
  • 性能基准测试

变更

  • 重构了核心日志引擎
  • 改进了 API 一致性

移除

  • 旧的日志方法

[0.4.0] - 2023-10-01

新增

  • Fatal 和 Panic 级别日志
  • 全局包函数
  • 配置验证

修复

  • 输出同步问题
  • 内存使用优化

[0.3.0] - 2023-09-15

新增

  • 自定义日志级别
  • 格式化器接口
  • 线程安全操作

变更

  • 简化了 API 设计
  • 增强了文档

[0.2.0] - 2023-09-01

新增

  • 文件输出支持
  • 基于级别的过滤
  • 基本格式化选项

修复

  • 性能瓶颈
  • 内存泄漏

[0.1.0] - 2023-08-15

新增

  • 初始发布
  • 基本控制台日志
  • 简单级别支持(Info、Warn、Error)
  • 核心日志器结构

版本历史摘要

版本 发布日期 主要功能
1.0.0 2024-01-01 完整的日志系统、构建标签、异步写入、全面的文档
0.9.0 2023-12-15 性能改进、对象池
0.8.0 2023-12-01 多写入器、异步写入、自定义格式化器
0.7.0 2023-11-15 构建标签、Trace/调试级别、调用者信息
0.6.0 2023-11-01 日志轮换、上下文日志、goroutine 跟踪
0.5.0 2023-10-15 JSON 格式化器、多个输出、基准测试
0.4.0 2023-10-01 Fatal/Panic 级别、全局函数
0.3.0 2023-09-15 自定义级别、格式化器接口
0.2.0 2023-09-01 文件输出、级别过滤
0.1.0 2023-08-15 初始发布、基本控制台日志

迁移指南

从 v0.9.x 迁移到 v1.0.0

破坏性变更

  • 无 - v1.0.0 与 v0.9.x 向后兼容

可用的新功能

  • 增强的构建标签支持
  • 全面的文档
  • 专业的项目模板
  • 安全报告流程

推荐更新

// 旧方式(仍然支持)
logger := log.New()
logger.SetLevel(log.InfoLevel)

// 推荐的新方式,使用方法链
logger := log.New().
    SetLevel(log.InfoLevel).
    Caller(true).
    SetPrefixMsg("[MyApp] ")

从 v0.8.x 迁移到 v0.9.x

破坏性变更

  • 移除了已弃用的配置方法
  • 更改了内部缓冲区管理

迁移步骤

  1. 如需要,更新导入路径

  2. 替换已弃用的方法:

    // 旧的(已弃用)
    logger.SetOutputFile("app.log")
    
    // 新的
    file, _ := os.Create("app.log")
    logger.SetOutput(file)

从 v0.5.x 及更早版本迁移

主要变更

  • 为更好的一致性完全重新设计 API
  • 通过对象池增强性能
  • 新的构建标签系统

需要迁移

  • 将所有日志调用更新到新 API
  • 审查并更新格式化器实现
  • 使用新的构建标签配置进行测试

开发里程碑

🎯 v1.1.0 路线图(计划中)

  • 带有键值对的结构化日志
  • 高量场景的日志采样
  • 用于自定义输出的插件系统
  • 增强的性能指标
  • 云日志集成

🎯 v1.2.0 路线图(未来)

  • 配置文件支持(YAML/JSON/TOML)
  • 日志聚合和过滤
  • 实时日志流
  • 增强的安全功能
  • 性能仪表板集成

贡献

我们欢迎贡献!请查看我们的 贡献指南 了解以下详细信息:

  • 报告错误和请求功能
  • 代码提交流程
  • 开发设置
  • 测试要求
  • 文档标准

安全

对于安全漏洞,请查看我们的 安全政策 了解:

  • 支持的版本
  • 报告流程
  • 响应时间线
  • 安全最佳实践

支持

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。


🌍 多语言文档

本变更日志提供多种语言版本:


跟踪每个改进并随时了解 LazygoPHers Log 的发展!🚀


本变更日志随每次发布自动更新。有关最新信息,请查看 GitHub Releases 页面。