使用 log4go 官方提供的 example 发现,指定了 Log 文件后,运行程序并不能把 log 打印到文件,在 stackoverflow 上发现答案: http://stackoverflow.com/questions/14252766/abnormal-behavior-of-log4go , 给出的解释是 log4go 用的是 channel 暂存日志,打印会另起一个 goroutine 进行,但是主 goroutine 退出太快时,负责打印日志的 goroutine 没机会把 channel 中的日志打印出来,导致日志丢失。
临时的解决办法: 在程序最后加上: time.Sleep(time.Second), sleep()调用会留给打印日志的 goroutine 执行的时间。
请问各位同学,有没有什么永久性的解决办法呢?
临时的解决办法: 在程序最后加上: time.Sleep(time.Second), sleep()调用会留给打印日志的 goroutine 执行的时间。
请问各位同学,有没有什么永久性的解决办法呢?