Golang中国

我看了一下说是自带的那个log功能比较简单,那么大家都是用哪个log包的?log4go还是啥?

22 回复
stevewang
#1 stevewang • 2014-10-20 17:26

标准库的log基本上够用了吧。

16779242
#2 16779242 • 2014-10-20 17:54

一直都在用官方标准库,表示完全够用啊

icecools
#3 icecools • 2014-10-21 00:02

我大概要那么几个功能,log到文件,可以分级,可以配置(比如命令行或者配置文件选为release,那么Info的就不log出来),log文件大小到一定程度创建新文件(不然太慢了)。试了一下glog, 感觉还是不太给力。。。而且那个V()的用法还没搞太明白。。。

stevewang
#4 stevewang • 2014-10-21 01:29

你说的这些功能,通过给Logger设置自己实现的Writer就可以实现。 对于简单的功能,我宁愿自己写一些代码实现,用第三方库会增加不必要的复杂度而给代码质量带来隐患。 为什么说log文件大会慢呢?又不会把文件所有内容都放在内存里。

icecools
#5 icecools • 2014-10-21 16:03

试了一下glog不好用,现在用了log4go还行,比较简单,也容易配置... 啥都自己写的话就有点麻烦,有现成成熟的库还是用现成的比较好

writethesky
#6 writethesky • 2014-10-21 23:04

一般复杂的东西用别人写的库是挺好的,比如go操作json自己写太麻烦了,就算真自己写,也得写个包。

像log这个觉得标准库足够了

jimmykuu
#7 jimmykuu • 2014-10-22 07:44

json不是有内置库的么?用哪个第三方包?

stevewang
#8 stevewang • 2014-10-22 10:30

为什么说go操作json很麻烦?

writethesky
#9 writethesky • 2014-10-22 12:10

确切的说应该是go从json里面取数据比较麻烦吧,

要么就是各种断言,要么就是用switch把所有的数据类型遍历一遍,

因为有些json层数特别多,里面的数据结构也很复杂

用的这个

github.com/bitly/go-simplejson/

不知道这个写的好不好,估计也就是用的switch

seefan
#10 seefan • 2014-10-22 22:51

建议你还是不要用log4go,我前段时间用过,在log密集写的时候会有一些内容莫名的就丢掉了,如果是关键日志,你就死定了,根本找不到原因。

现在用seelog,也不太好,对付用。主要问题在window下运行时会有输出不正常的情况。主要是一些format的串显示不正常,在mac没问题,linux没测。

还是原装的log好,但还得自己分文件,太麻烦。

目前看,还没有一个我完全满意的。

cnjack
#11 cnjack • 2014-10-23 10:02

log包用过,,貌似不太知道怎么用,调取*Log.Logger在另外一个func里面总是写不了

icecools
#12 icecools • 2014-10-23 12:50

哦,谢谢seefan, 我那个只有debug的log写的比较频繁,但是不是很重要,别的log也都还好,现在一秒钟几条而已,估计还不至于出错。先用着,也没有更好用的了。感觉go的周边还是有很多东西没成熟起来。

xnotepad
#13 xnotepad • 2014-10-23 14:00

一般都是自定义个io.Writer实现一些文件分割的功能,然后用标准库的log包。

xue777hua
#14 xue777hua • 2015-07-21 16:41

用seelog吧。

glog只能debug绝逼不能用生产
glog + logrotate会丢log
log4go丢log绝逼严重。。。
logrus 甚至连行号都不打印!?要这样的log工具何用?

qinzhu0
#15 qinzhu0 • 2015-07-22 13:37

发一个自己日常和工作中用的log包,封装标准库增加Level和Rotate功能,代码不多,直接看代码吧。

https://github.com/cxr29/log

luxor
#16 luxor • 2015-07-22 19:41

推荐我们生产环境正在使用的库,基于logrus修改
https://github.com/gogap/logrus

可以配置输出到文件和graylog日志系统

基础的level、调用链、行号,文件切分都有

特色是结构化日志可以被统计和索引,借助graylog就可以做日志分析

someonegg
#17 someonegg • 2016-05-11 18:25

我们线上用的库,纯粹结构化的logger
https://github.com/someonegg/golog

gvforjob
#18 gvforjob • 2016-05-25 17:38

@stevewang 标准库的log基本上够用了吧。

这个,标准的logger只用print,fatal,panic几个API,用它做日志分级觉得还是有点不太方便

nuokesasi
#19 nuokesasi • 2016-05-26 06:31

https://github.com/gogap/logrus
这个用起来还不错

zhangzhonglin
#20 zhangzhonglin • 2016-05-26 21:04

“github.com/ngaut/log”
这个不错,刁刁的,相当留B

knift
#21 knift • 2016-05-27 15:01

https://github.com/inconshreveable/log15
可以试试这个,还可以。

json的话simplejson也不能解决问题,静态语言作这类解析就是麻烦,好用点的是
https://github.com/ChimeraCoder/gojson
自己生成对应结构

axengine
#22 axengine • 2016-12-23 09:38

一直用的seelog,功能强大,用起来也很简单省事。最近出现fatal error,准备换glog

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。