log4go 的 Bug Fix 及 增强

log4go 一直存在关闭时丢失记录的问题。网络上很多人怀疑是Flush。经过跟踪发现只要在 Close() 函数中增加以下语句:

 for i := 10; i > 0 && len(w.rec) > 0; i-- {
                time.Sleep(100 * time.Millisecond)
        }

即可解决。实际上是一些测试小程序运行得太快,go routine 还没有运行就已经退出了。记录被留在了w.rec 中。

log4go 的特点之一是异步执行。充分利用golang 的 routine 特性,几乎所有的工作,例如日志格式化,显示输出,文件读写等都不会影响到主线程的执行。

请关注:

https://github.com/ccpaging/log4go