首页 > 代码库 > Golang下的Log处理
Golang下的Log处理
后端系统中的Log是相当重要的,做过高并发服务的同学都会认同这一点。相对而言,调试已经用处不大了,对于这样的项目,我现在也习惯了这种开发方式,有两个原因:
1.debug只能在开发环境,到产线环境就不灵了。
2.在并行计算下,debug可能无法发现潜在的问题。
有了以前做node.js的经验,放弃debug没有想象中那么可怕,只要我们程序设计合理,结构清晰,日志完整,看到异常信息后基本都可以快速定位问题所在。
做Java的时候有log4j,做.NET程序的时候有log4net, 做Node.js的时候有log4js....上述几个模块用了都不错,因此做Go项目自然选择了Log4go。
话说这个log4go并不完善,而且两年没维护了,白瞎了这么好的名字。比较严重的是程序退出可能有日志没有flush到磁盘上:
1 func main(){2 log.Debug("....")3 defer log.Close()4 }
程序执行后是没有log的,这个问题两年了还没解决,参见:
https://code.google.com/p/log4go/issues/detail?id=8
使用开源项目我是比较看重活跃度的,本想自己写一个模块来解决,后来找到了seelog,试用了一下,还不错,并且各荐配置和习惯和log4x还比较统一。
seelog源码地址:https://github.com/cihub/seelog
seelog支持在console中输出日志时自定义不同的颜色,但是使用ANSI color,在windows cmd下显示乱码,解决方式是安装一个插件:
http://adoxa.altervista.org/ansicon/
解压后需要注入:
ansicon.exe -i
Golang下的Log处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。