感觉 golang 的三方日志库 logrus 真的好方便啊....

2020-11-06 15:22:13 +08:00
 CzaOrz

golang 代码:

package main

import "github.com/sirupsen/logrus"

func main() {
	logrus.WithFields(logrus.Fields{"name": "cc"}).Info("hello")
}

输出:

time="2020-11-06T14:50:17+08:00" level=info msg="hello" name=cc

这段日志中可以看到,拆离出了各种结构化信息,以前都没这样想过...而且输出 json 也非常方便


然后最近又有相关需求,python 项目的日志要输出 json...我...
不禁又羡慕起logrus来...

需求完成后,,抽空花了两天模仿写了个loggus(半天写完,改了一天半的 bug 囧)

import loggus

if __name__ == '__main__':
    loggus.WithFields({"name": "cc"}).Info("hello")
    
    loggus.SetFormatter(loggus.JsonFormatter)
    loggus.WithFields({"age": 18}).Info("world")

输出:

time="2020-11-06 14:54:15.416516" level=info msg=hello name=cc
{"age": 18, "time": "2020-11-06 15:05:04.613234", "level": "info", "msg": "world"}

等我找个内部项目试试水先,有大佬给点意见嘛,写的太简陋了...
https://github.com/CzaOrz/loggus

6861 次点击
所在节点    Python
32 条回复
ClericPy
2020-11-06 20:39:43 +08:00
有多少人看到 loguru 主页那句 10x 性能了
outoftimeerror
2020-11-06 20:44:34 +08:00
这个项目几年前坑过我,当时 Logrus 突然换成了 logrus,害我线上 pipeline 老是失败
hijoker
2020-11-06 21:03:15 +08:00
go 的日志库是几个语言里最挫的,没有之一
xfs
2020-11-06 21:23:14 +08:00
第一眼看到“golang”、“日志库”这种关键字第一反应是又有人吐槽了,结果仔细一看居然是夸的,哈哈哈哈
Moker
2020-11-06 21:26:14 +08:00
目前用的是 zerolog
qxooqx
2020-11-06 22:01:25 +08:00
当前用 zap,日志多的时候怀疑人生,求推荐一个能安模块分类的方法
laminux29
2020-11-06 22:28:09 +08:00
世间任何事物都有两面性,方便的代价从来都是可定制性的降低,低可定制线意味着性能的不可控甚至降低。---鲁迅。
aliipay
2020-11-06 22:36:15 +08:00
lrh3321
2020-11-07 07:13:22 +08:00
就没其他和我一样用 klog 的吗
troywinter
2020-11-07 12:39:40 +08:00
结构化日志,一直用 zap
qloog
2020-11-07 15:01:14 +08:00
一直在用 zap: https://github.com/1024casts/snake/tree/master/pkg/log 比较方便自定义,扩展性比较强。当然性能方面更优秀。
ppphp
2020-11-07 17:54:44 +08:00
@lrh3321 prometheus 就是用的 klog 。。。反正主要看日志需不需要性能吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/722417

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX