感觉 golang 的三方日志库 logrus 真的好方便啊.... - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
CzaOrz
V2EX    Python

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

  •  
  •   CzaOrz
    czasg 2020-11-06 15:22:13 +08:00 7680 次点击
    这是一个创建于 1801 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

    32 条回复    2020-11-07 17:54:44 +08:00
    MadbookPro
        1
    MadbookPro  
       2020-11-06 15:30:49 +08:00   1
    确实方便好用,就是性能拉胯一些,最近想换了。。
    youngce
        2
    youngce  
       2020-11-06 15:35:27 +08:00   1
    ??? python 也有个叫做 loguru 的日志库,github7.4K 的 star,可以看看,python 一般不会出现少轮子的情况
    zzzbkl
        3
    zzzbkl  
       2020-11-06 15:37:12 +08:00 via Android   1
    没有原生支持日志文件 rotate,稍微有点不爽
    TypeErrorNone
        4
    TypeErrorNone  
       2020-11-06 15:38:43 +08:00   1
    推荐 zap
    xiaolinjia
        5
    xiaolinjia  
       2020-11-06 15:40:35 +08:00   2
    CzaOrz
        6
    CzaOrz  
    OP
       2020-11-06 15:43:44 +08:00
    loguru, 我 see see,好用就直接用了,哈哈
    fewok
        7
    fewok  
       2020-11-06 16:05:31 +08:00   4
    这怕是没用过 java 的日志库,什么 log4j 、logback 、log2j 。哪个不秒杀这些玩具
    eurry
        8
    eurry  
       2020-11-06 16:16:36 +08:00
    logrus 能打印 goroutine 的 id 吗
    xiaoqiao24
        9
    xiaoqiao24  
       2020-11-06 17:15:19 +08:00   1
    在不知道 loguru 之前一直用 logging 之后我就忘了什么是 logging 了
    axex
        10
    axex  
       2020-11-06 17:24:52 +08:00   1
    zap 玩法更多,比如直接劫持 go 的那个 std logger,或者把结构化的日志刷到 influxdb 中
    misaka19000
        11
    misaka19000  
       2020-11-06 17:25:02 +08:00   2
    golang 的日志也能吹一波我是没想到的。。。
    chendy
        12
    chendy  
       2020-11-06 17:29:01 +08:00   1
    是不是应该整个 log4go 啥的…
    ppphp
        13
    ppphp  
       2020-11-06 17:30:43 +08:00   1
    golang 遇到很多 interface 的时候性能就是很拉垮的
    CzaOrz
        14
    CzaOrz  
    OP
       2020-11-06 17:35:52 +08:00
    @misaka19000 这,,,只是刚好在用两种语言写项目,遇到一些问题而已,不具有其他意义==整体来说我还是喜欢 python 多些吧,,,
    CzaOrz
        15
    CzaOrz  
    OP
       2020-11-06 17:38:31 +08:00
    我 golang 接触不多,同事用的 logrus 多些,so,,,,感觉后续可以试试 zap,哈哈
    Pythondr
        16
    Pythondr  
       2020-11-06 17:54:57 +08:00   1
    zap 吧
    joesonw
        17
    joesonw  
       2020-11-06 17:57:55 +08:00
    @MadbookPro uber/zap 还可以
    joesonw
        18
    joesonw  
       2020-11-06 17:58:31 +08:00
    @eurry 哪个库都不行啊, goroutine 拿不到 id 的
    cz5424
        19
    cz5424  
       2020-11-06 18:56:14 +08:00 via iPhone
    Python 跟 sentry 连用,一个 error 把临时变量都会打出来
    okayan
        20
    okayan  
       2020-11-06 19:21:11 +08:00   1
    golang 有没有日志库可以做到类似 Java 那种,对特定的 package 指定 log level 的?

    现在引入了一些第三方库,调试时 log 开到 debug 级别,被第三方的 debug 日志刷屏了,从一大堆日志里找自己写的 debug 日志很揪心....
    ClericPy
        21
    ClericPy  
       2020-11-06 20:39:43 +08:00   1
    有多少人看到 loguru 主页那句 10x 性能了
    outoftimeerror
        22
    outoftimeerror  
       2020-11-06 20:44:34 +08:00
    这个项目几年前坑过我,当时 Logrus 突然换成了 logrus,害我线上 pipeline 老是失败
    hijoker
        23
    hijoker  
       2020-11-06 21:03:15 +08:00
    go 的日志库是几个语言里最挫的,没有之一
    xfs
        24
    xfs  
       2020-11-06 21:23:14 +08:00
    第一眼看到“golang”、“日志库”这种关键字第一反应是又有人吐槽了,结果仔细一看居然是夸的,哈哈哈哈
    Moker
        25
    Moker  
       2020-11-06 21:26:14 +08:00
    目前用的是 zerolog
    qxooqx
        26
    qxooqx  
       2020-11-06 22:01:25 +08:00 via Android
    当前用 zap,日志多的时候怀疑人生,求推荐一个能安模块分类的方法
    laminux29
        27
    laminux29  
       2020-11-06 22:28:09 +08:00
    世间任何事物都有两面性,方便的代价从来都是可定制性的降低,低可定制线意味着性能的不可控甚至降低。---鲁迅。
    aliipay
        28
    aliipay  
       2020-11-06 22:36:15 +08:00
    lrh3321
        29
    lrh3321  
       2020-11-07 07:13:22 +08:00 via Android
    就没其他和我一样用 klog 的吗
    troywinter
        30
    troywinter  
       2020-11-07 12:39:40 +08:00
    结构化日志,一直用 zap
    qloog
        31
    qloog  
       2020-11-07 15:01:14 +08:00
    一直在用 zap: https://github.com/1024casts/snake/tree/master/pkg/log 比较方便自定义,扩展性比较强。当然性能方面更优秀。
    ppphp
        32
    ppphp  
       2020-11-07 17:54:44 +08:00
    @lrh3321 prometheus 就是用的 klog 。。。反正主要看日志需不需要性能吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     870 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 22:15 PVG 06:15 LAX 15:15 JFK 18:15
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86