此版本发布于 2024-08-07
- 快速时钟增加获取 nanos 的函数
此版本发布于 2024-08-07
- 提高单元测试覆盖率到 80%
- 增加快速时钟,可以非常快速地查询时间
此版本发布于 2024-01-19
- v1.5.x 第一个正式版
此版本发布于 2024-01-09
- 去除对 \ 和 " 的转义
此版本发布于 2023-12-27
- 调整生产选项,去除 pid 的输出
此版本发布于 2023-12-22
- 增加包级别的 Sync 和 Close 函数
此版本发布于 2023-12-21
- 增加包级别的日志方法
- PS: 周董的新歌《圣诞星》上线了,怎么说呢哈哈,周董的光芒还是留在回忆里面吧~
此版本发布于 2023-12-20
- 继续优化代码,包括设计和质量
- 完善单元测试,提高覆盖率到 78%
此版本发布于 2023-12-18
- 增加一个高可读性且高性能的 handler 实现 —— TapeHandler
- 新的 tape handler 性能提升了 33%,且 print 类函数性能提升了 50%
此版本发布于 2023-12-13
- 简化代码,去除冗余的一些东西
此版本发布于 2023-12-13
- 优化 handler 和 writer 设计
此版本发布于 2023-12-12
- 增加属性解析器适配功能
- Logger 性能提升接近 20%
- TextHandler 零内存分配
此版本发布于 2023-12-11
- 考虑结合 Go1.21 新加的 slog 包,做一些生产化的适配和功能
- 增加 context 适配功能
- 增加 Production 现成配置,搭配 Option 方便使用
- 完善 Logger 相关的单元测试
- 调整 writer 包代码,完善单元测试
- 调整 rotate 包代码,完善单元测试
- 完善 config 包功能和单元测试
- 完善性能测试
- 完善示例代码
此版本发布于 2023-07-03
- 调整 logPool 为指针引用,避免 Logger 结构复制引发 sync.Pool 的复制
此版本发布于 2023-06-19
- 增加 LogX 方法,方便使用 context 和 interceptor
- 增加 time.Duration 相关方法
此版本发布于 2023-03-24
- 调整 global logger 的设计,去除 caller + 1 的代码
- 完善单元测试
此版本发布于 2023-01-21
- 稳定的 API 版本
此版本发布于 2022-12-21
- 修复 extension file 文件冲突问题
此版本发布于 2022-11-23
- 调整 Error 的 API 设计
- 增加 WithError 方法,代替 Err 方法
此版本发布于 2022-10-24
- 增加 errorKey 和 Err 方法,方便 Error 日志的输出
此版本发布于 2022-10-08
- 原谅我将仓库从组织中转移回个人。。因为组织没啥用。。
此版本发布于 2022-10-01
- 国庆节快乐!
此版本发布于 2022-09-17
- 这个周末,我开始了在声乐上的学习生涯,希望半年后的我会在声乐上有所进展!
此版本发布于 2022-09-04
- 继续完善单元测试
- 继续优化代码设计
- 修复了 config 的 unix 时间解析问题
- 增加 appender.TextWith 函数,支持不转义 key 和 value 的值
此版本发布于 2022-09-02
- 大量完善单元测试
- 大量优化代码设计
- 修复 WithPID 在默认开启时不会添加 pid 的问题
此版本发布于 2022-09-01
- 大幅度优化 API 和代码(再忙也要学会优雅哦,哈哈哈)
- 增加配置项解析功能,提供配置文件支持
- 加入日志存活天数的特性
- 加入日志存活个数的特性
- 按时间、文件大小自动切割日志文件,并支持过期清理机制
此版本发布于 2022-08-28
- 调整包结构,优化代码
- 增加配置文件解析机制
此版本发布于 2022-08-27
- 增加错误监控回调函数
此版本发布于 2022-08-24
- 提取时间函数,方便做时间查询优化
- 优化 Json 方法的 Appender 实现
此版本发布于 2022-08-22
- 替换 End() 方法,使用 Log() 代替,代码可读性更高
- 代码优化和重构,包括性能和逻辑上的优化,代码质量上的重构
- 支持增加调用堆栈或者函数名的信息到日志
- 增加批量写入的 Writer,区别于缓冲写入的 Writer,这个批量是按照数量进行缓冲的
此版本发布于 2022-03-19
- 前两个测试版本的正式发布版本
此版本发布于 2022-02-27
- 废弃 LoggerMaker
- 加入全局日志方法
此版本发布于 2022-02-23
- 加入日志拦截器,支持从 context 注入键值对
- 优化 Logger 字段结构,减少多余引用变量
- 更改 LoggerMaker 为 LoggerCreator,并废弃 LoggerMaker
- 更改 MarshalJson 为 MarshalToJson,并废弃 MarshalJson
此版本发布于 2022-02-13
- 给 log 加入 Json 方法
此版本发布于 2022-02-08
- 修复 Caller Depth 不生效的问题
此版本发布于 2022-02-08
- 修复 Version 错误的问题
- 修复 Printf、Print、Println 方法下 level 错误的问题
- 加入 WithPid 方法
- 完善 PrintLevel 相关的逻辑
此版本发布于 2022-02-02
- 庆祝下仓库转移成功!!!
此版本发布于 2022-02-01
- 祝大家新春快乐 :)
此版本发布于 2022-01-31
- 兼容 log 包部分方法,比如 Printf
此版本发布于 2022-01-29
- Log 增加 Caller 方法,方便某些场景下获取调用信息
此版本发布于 2022-01-29
- depth 放开,可以支持用户包裹
此版本发布于 2021-11-29
- 修改 LoggerMaker 接口 params 为可变参数
此版本发布于 2021-11-01
- 增加 LoggerMaker 扩展功能
此版本发布于 2021-10-27
- 修复 TextAppender 的 AppendErrors 和 AppendStringers 追加问题
- 完善单元测试
此版本发布于 2021-10-10
- 修改 sync.Mutex 的使用方式
- 完善单元测试
此版本发布于 2021-09-27
- 加入 Context 机制,更优雅地使用日志,并支持业务域划分
此版本发布于 2021-09-08
- 调整转义字符显示样式
此版本发布于 2021-09-06
- 修复 Appender 接口实现类检验失效问题
- 调整 textAppender 的字段分隔符为 |
- 去除 signal 机制的 TODO
此版本发布于 2021-08-10
- 修复 WithWriter 的顺序问题
此版本发布于 2021-08-10
- 优化部分 log 设计
- 增加多级别追加器机制
- 增加多级别写出器机制
- 完善文档注释和单元测试
此版本发布于 2021-08-01
- 修复部分问题
- 完善文档注释
此版本发布于 2021-07-15
- 改造 API 使用体验,加入结构化日志功能
- Options 机制引入,支持多种创建选项
- 改造 Encoder 为 Appender,直接追加字节数据
- 提供高级调优配置能力,贴合业务进行设置
此版本发布于 2021-06-08
- 大幅度重构设计,精简功能,后续继续完善原有功能
- 重构 Encoder,加入缓冲区对象池
- 引入新的日志输出器,并且带有缓冲和异步写功能
此版本发布于 2021-01-12
- 去除了 DebugF 一类格式化的 API,统一使用 Debug 一类 API
此版本发布于 2020-12-24
- 废弃了 files 包
- 完善文档,第一个 v0.3.x 正式版
- 最后,祝大家平安夜、圣诞节快乐!
此版本发布于 2020-12-13
- 日志文件自动分割处理,支持 Checker 机制检查是否需要分割
- 内置三种 Checker,分别是 TimeChecker,SizeChecker,CountChecker
- 多种检查器可以叠加效果,只要其中有一个达到分割的条件都会进行分割
此版本发布于 2020-11-28
- 大幅度重构版本,废除了 handler 设计
- 暂不支持配置文件,正式版会支持
- v0.3.x 的第一个体验版
此版本发布于 2020-08-22
- 完善配置文件注释,目前是 // 和 # 都支持,后续将只支持 //
- 完善配置文件格式,目前的 Json 配置是不用 {} 包裹也可以的,后续将必须使用 {} 进行包裹
此版本发布于 2020-08-08
- 日志文件输出会自动创建父级不存在的目录
此版本发布于 2020-07-30
- 去掉 JsonEncoder 的 key 空格
此版本发布于 2020-06-25
- 修复了 DefaultNameGenerator 可能产生重复文件名的 bug
此版本发布于 2020-06-24
- 对 writer 包进行重构,改名为 files 包
- 废弃了原 writer 包的 NewFile 方法,并使用同包下的 CreateFileOf 代替
- 引入 NameGenerator 组件
- 修改 NewDurationRollingHandler 的参数顺序
- 修改 NewSizeRollingHandler 的参数顺序
此版本发布于 2020-06-08
- 加入之前被移除的特性 - 可变长参数列表的日志输出支持,主要可以使用格式化字符串进行多参数传递
此版本发布于 2020-05-27
- 新增屏蔽某个日志级别的日志处理器
- 修正某些文档的语法问题
- 修复部分单元测试引用外部文件(比如 _examples 中的文件)的问题
此版本发布于 2020-05-01
- 祝大家五一劳动节快乐!
此版本发布于 2020-04-28
- 改造全局使用的 logger,可以使用一个默认的配置文件来初始化全局 logger,方便使用
- 增加 levelBasedHandler,里面是不同日志级别的日志处理器包装器,可以传一堆的 handler 进去
此版本发布于 2020-04-27
- 将 console handler 简化,目前使用 RegisterHandler 构造
- 从 file handler 中抽取出 duration rolling 和 size rolling 两个日志处理器
- 屏蔽了 HandlerOf 和 EncoderOf,只暴露特定的 API
- 新增 TextEncoder 和 JsonEncoder 两个方法,可以获取到具体的日志编码器
- 新增 NewConsoleHandler 和 NewFileHandler,分别对应控制台和文件日志处理器
- 新增 NewDurationRollingHandler 和 NewSizeRollingHandler,分别对应时间间隔滚动和文件大小滚动的日志处理器
- 删除了大量创建 Logger 的方法,这些方法会让人看起来很复杂很繁琐
- 去除原有 Config 加 fileConfig 的配置设计,现在直接使用一个映射配置,然后组装成需要的参数
此版本发布于 2020-04-24
- 将 wrapper 修改为 writer
- 剔除了 default handler 和 json handler,整合进 standard handler 中
- 提取出一个 encoder,方便内置处理器引用
- 加入 console handler,专门负责输出到控制台的日志处理器
- 加入 file handler,专门负责文件相关的日志处理器,包含时间滚动和大小滚动和不滚动的功能
此版本发布于 2020-04-19
- 完善 Json 处理器没有做字符转义的修复方案,详情查询 issue/1
此版本发布于 2020-04-10
- 紧急修复 Json 处理器没有做字符转义的 bug,详情查询 issue/1
此版本发布于 2020-04-05
- 增加配置文件中是否开启文件信息记录的选项
此版本发布于 2020-03-30
- 加入配置文件的支持,以近似 Json 格式的配置文件来增加日志记录的灵活性
- 修复 Logger 中 DebugFunc,InfoFunc,WarnFunc,ErrorFunc 等几个方法的文件信息错误问题
- 修复 logit 中 DebugFunc,InfoFunc,WarnFunc,ErrorFunc 等几个方法的文件信息错误问题
此版本发布于 2020-03-29
- 再次对 Handler 进行重构,尽量优化 Logger 的设计
- 去除 Encoder,减少多余的设计,轻量化 Logger
- 取消时间缓存机制,减少并发竞争性
- 优化 releaseLog 的 extra 内存分配
- 加入 FileConfig,为后续支持配置文件做准备
此版本发布于 2020-03-27
- 重新设计 Logger,主要是轻量化处理和重构 handler 的设计
- 增加 Encoder 接口,方便用户扩展 Logger,并内置 Json 编码器
- Json 编码器允许时间不做格式化,使用 Unix 形式处理时间,方便解析处理
此版本发布于 2020-03-23
- 支持日志输出为 Json 形式,通过增加 JSON 日志处理器实现
- 使用时间缓存机制优化时间格式化操作性能消耗过多的问题,性能再次提升 50%
此版本发布于 2020-03-10
- 扩展了 Logger 的方法,可以获取到内部的属性,为日志处理器做准备
- 支持创建 Logger 对象之后修改它的输出源 writer(这是个之前被遗漏的功能特性哈哈)
- 调整了内部 log 方法的锁机制,使用类似于写时复制的方式释放日志输出的并发性
此版本发布于 2020-03-09
- 支持日志输出函数,日志信息可以是一个返回 string 的函数
- 公开 PrefixOf 方法,方便用户自定义处理器的时候获取日志级别字符串
此版本发布于 2020-03-08
- 进行第一次性能优化,性能相比之前版本提升 30%
- 取消占位符功能,由于这个功能的实现需要对类型进行反射检测,非常消耗性能
- 取消 fmt 包的使用,经过性能检测,发现 fmt 包中存在大量使用反射的耗时行为
此版本发布于 2020-03-06
- 重构日志输出的模块,抛弃了标准库的 log 设计
- 增加日志处理器模块,支持用户自定义日志处理逻辑,大大地提高了扩展能力
- 支持不输出文件信息,避免 runtime.Caller 方法的调用,大大地提高了性能
- 支持调整时间格式化输出,让用户自定义时间输出的格式
此版本发布于 2020-03-05
- 支持按照文件大小自动划分日志文件
- 修复 nextFilename 中随机数生成重复的问题,设置了纳秒时钟作为种子
此版本发布于 2020-03-04
- 支持将日志输出到文件
- 支持按照时间间隔自动划分日志文件
此版本发布于 2020-03-03
- 修改 LogLevel 类型为 LoggerLevel,命名更符合意义
- 更改了部分源文件的命名,也是为了更符合实际的意义
此版本发布于 2020-03-02
- 让信息输出支持占位符,比如 %d 之类的
- 修复 Logit 日志调用方法的调用深度问题,之前直接通过 logit 调用时文件信息会显示错误
此版本发布于 2020-03-01
- 扩展 Logger 的使用方法,主要是创建日志记录器一类的方法
- 扩展 logit 的全局使用方法,增加一个默认的日志记录器
- 支持更改日志级别,参考 Logger#ChangeLevelTo 方法
- 修复 Logger#log 方法中漏加读锁导致并发安全的问题
此版本发布于 2020-02-29
- 实现最简单的日志输出功能
- 支持四种日志级别:debug, info, warn, error。
- 对应四种日志级别分别有四个方法。