# Change log All notable changes to this project will be documented in this file. ## [Released] ## [0.5.9] - 2018-12-14 ### Changed - timeCache的更新时间改回1秒 ### Fixed - multiWriter的write操作添加锁,避免不同level写同一个文件时会发生内容错乱 ## [0.5.8] - 2018-04-14 ### Changed - hook调用的逻辑不使用defer ### Fixed - 修复全局方法竞态crash ## [0.5.7] - 2018-01-02 ### Added - 支持自定义字段输出 ### Changed - 更新时间缓存的间隔由1秒改成1毫秒. @egmkang - 修改日志输出格式为类似ltsv的格式 ### Fixed - 修复baseFileWriter初始化是会出现的资源竞争 ## [0.5.6] - 2016-10-17 ### Added - travis-ci增加go1.7版本测试 - socker writer判断实例有效性 - file writer判断实例有效性。thanks @sillydong [#8](https://github.com/YoungPioneers/blog4go/pull/8) - 支持用户设置bufio的buffer size ### Changed - multiWriter默认使用console writer - DefaultLevel修复为TRACE - 修改日志输出格式为tsv ### Removed - benchmark移动到[benchmark](https://github.com/YoungPioneers/blog4go-benchmark) - examples移动到[examples](https://github.com/YoungPioneers/blog4go-examples) - travis-ci去掉go1.5版本测试 ## [0.5.5] - 2016-07-17 ### Added - hook支持阻塞模式调用 - 测试用例覆盖timeRotate, 成员属性方法 - 封装成员属性 ### Fixed - examples错误 - 针对go1.6修复资源竞争timeCache && baseFileWriter ## [0.5.4] - 2016-03-27 ### Added - 使用配置文件启动的时候检验配置文件正确性。 - 加入circle测试。 - write/writef覆盖测试。 - 覆盖重复初始化、重复配置测试。 ### Removed - 去除ByteSize. - consoleWriter去除Colored(), Level()方法。 ### Changed - write支持args ...interface{} - logSizeChan buffer size加大到8192. - 简化.travis.yml - 增加测试用户覆盖write args ...interface{} - baseFileWriter分离出单独文件。 - NewBaseFileWriter, NewConsoleWriter, NewSocketWriter不返回writer实例。 ### Fixed - fileWriter关闭时关闭所有对象。 - 修复travis-ci调用coveralls适应新版。 - BLog默认日志等级为TRACE. - 调整writer.closed判断位置。 - consoleWriter close后再writer报错。 ## [0.5.3] - 2016-03-10 ### Added - config valid方法实现。 - file writer close测试。 - socket writer测试用例。 - console writer测试用例。 - time base logrorate测试用例。 - 全局方法测试用例。 - 从配置文件初始化writer测试用例。 ### Changed - 优化config判断条件。 ### Fixed - multiWriter通过配置文件会创建多余错误文件。 - 重复Close报错。 - time base logrotate逻辑。 ## [0.5.2] - 2016-03-09 ### Added - logrotate测试用例。 - 重复初始化blog, 返回ErrAlreadyInit. - fileWriter测试检查日志内容正确性。 ### Fixed - 测试用例中不完整关闭writer。 - time base logrotate逻辑错误。 - multiWriter中,不同level的writer写同一文件出现内容错乱。 ## [0.5.1] - 2016-03-05 ### Added - coveralls检查。 - hook testing. - 可设置日志过期时间,并自动删除过期日志。 - blog暴露关于logrotate的静态方法。 - 支持配置文件设置log expire day. - 支持line && size logrotate自动淘汰日志。 ### Changed - fileWriter初始化时设置是否logrotate. ### Fixed - 重启后无法logrotate. ## [0.5.0] - 2016-02-25 ### Removed - BaseFileWriter不再向外暴露。 ### Changed - 记录日志使用的实例改为全局实例,使用单例模式。 - 完善examples,按种类分目录存放。 - 完善benchmark,使用timeCache及比较100 goroutines下的运行情况。 - 合并原baseFileWriter.go和FileWriter.go. - 测试用例StopTimer,StartTimer合并为RestartTimer. - fileWriter改为每秒flush一次。 ### Added - Debug,Info等日志记录函数可通过静态方法调用。 - 增加fmt,logrus,seelog benchmark - 配置文件初始话writer支持所有writer类型(除console)。 - 写文件测试,检验有没漏写。 - Writer interface增加flush方法,刷内存至磁盘。 ### Fixed - 修复example与测试用例,符合新的模式。 ## [0.4.0] - 2016-02-13 ### Added - 增加timeCache测试。 - 支持xml配置文件初始化file writer. - file writer添加SetHookLevel设置自定义钩子函数。 ### Changed - 通用的write方法抽象成BLog. - file, console writer使用通用BLog. - 删除const.go, 常量归于对应使用的文件中。 ## [0.3.0] - 2016-01-26 ### Added - 增加ConsoleWriter,更直接支持控制台输出。 - 文件输出支持不同日志等级区分文件输出。对应于FileWriter。 - 增加ConsoleWriter, FileWriter对应的Benmark测试。 - level_test.go测试用例 - travis ci - 支持socket - 现有文件增加详细的注释 ### Changed - 原BLog4go结构体改名为FileWriter. - 比较通用的方法及定义放在blog4go.go. - 日志等级判断从writer, writerf函数中分离,放到上一层函数调用。 - 去除function handler信息获取。 ### Fixed - 部分有误注释。 ## [0.2.0] - 2016-01-11 ### Added - logrotate雏形。 ### Changed - 使用fmt支持所有占位符。 - size 统计在rotate模式下才累加。 - 聚合0.1.0版本前的changelog. ## [0.1.0] - 2015-12-08 ### Added - 实现简单的雏形,使用bufio写文件 - 简陋的字符串格式化函数,做到边解析边输出。 - 增加各个日志级别的外部函数。 - 增加logrotate代码。 - 增加version.go文件记录版本号。 ### Changed - 使用读写锁简单保证日志输出的完整性,不会因为程序退出而导致部分日志信息被截断。 - 独立goroutine进行格式化前缀时间字符串。 - 写日志时使用互斥锁防止bufio竞争报错以支持多CPU调用。 - 日志等级“常数化”,减少字符串拼接带来的开销。 - 使用fmt实现%v, %f占位符(待改进!!!)。 - 格式化的时间字符串使用[]byte形式写好像效率更好。 ### Fixed - 修复部分代码错误。