Skip to main content

Command Palette

Search for a command to run...

关于打日志这件事

Updated
1 min read

最近在推上看到下面这张图,讲的是什么时候应该用什么log level,觉得还蛮有意思,于是想到结合自己过往的工作经验做一次解读

image.png

一般情况,在打日志这件事情上,并不严格区分Developer与System operator,事实上,在笔者的工作经历中,在怎么打、应该时候应该打日志这件事,基本上都是由开发自己去完成的。

日志分级

trace

Designates finer-grained informational events than the Debug.

对debug更精细的日志级别? 抱歉,我个人表示从来没有用到过这一级别

debug

开发调试阶段会用到,比如在开发阶段可能会有打印请求body这类诉求,通常用的较少

info

常用日志级别,实际使用中,info是当debug用的,所以,基本上这两者区别不是特别大。比如某个操作成功打印一下,或者打印请求中的某些变量、当前操作用户等行为。

        logrus.Infof("this action sucess")
        logrus.Infof("current user is %s", userName)

warn

处理http请求时,一般40x的日志级别是warn,或者是接口慢请求等

error

这一级通常需要接告警平台,把error内容通知给开发者的。比如服务panic了这类预期之外错误 ,再比如金融服务中需要对账,如果一个人的账户余额跟流水对不上,这是大事,这可是大大的error,所以其实error是一个需要严肃对待日志级别

fatal

这个比error更严重了吧,生产环境没有用过,能想到的适用场景可能是服务启动时,做一些上下游依赖检查,如果没有通过,就不启动?

总结

其实我在工作中经常发现这样几类打日志的坏习惯:

  • RESTful API的出参和入参全打出来,不管有用没有,有人认为要用的时候肯定用的着
  • 打印一些没有上下文的一句话日志,比如前面提到的"this action sucess",这种日志没太大意义 搞清楚为什么要打印日志这件事情是非常重要的,从我的角度,日志当然是为了帮助开发者快速定位问题所在,出问题的地方是预期之外的,预期之内的笃定不会出错,可以按需要打辅助日志,无脑打日志是本人非常反对的。

我们的日志通常会写到日志文件中,日志文件可能会很大,这种时候最好做一下日志切割(比如lumberjack),避免因写入日志磁盘占用过多而引起其它问题。

参考

  • https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
36 views

More from this blog

2025: 祛魅 灰度 念头通达

今天是2025年的最后一天,当大家都在准备下班的时候,好巧不巧的,我刚好发现了一个不大不小的问题,大胆猜想,小心求证,向上反馈,暴露风险,作为2025年工作注解,实在是再有趣不过了。 今年的工作,从结果上看,还算平稳,至于过程,有太多不可言说的部分。厂里打镙丝的牛马,有工资可拿,理应知足了,至于其它的,与己无关,也没那么重要了。 祛魅 近距离观察大厂,才发现一些违背常识/直觉的事实:路人以为的高大

Feb 28, 20261 min read21

大厂祛魅:破碎的专注力

毁掉一个人最直接的方法,就是毁掉ta的专注力。 这句话的出处已然模糊,但放在大厂环境中,却显得格外深刻。 围城 大厂宛如一座围城。城外的人满怀憧憬,目之所及皆是光鲜;城内的人却如困笼之鸟,翅膀日渐退化,每日挣扎求生。 高大上 不可否认,大厂的硬件设施确实令人艳羡:宽敞的独立园区内,来往穿梭的人群中,几乎人人手握智能设备。这看似现代化的景象背后,却藏着一个无奈的事实:在工作时段,每台电脑都被严密监控,连听音乐都成奢望。于是,工作之余玩手机,成了许多人难得的解压方式。 大厂的品牌效应确实强大。外界对...

Jul 29, 20251 min read138

Black Swan

黑天鹅理论 是指极不可能发生,实际上却又发生的事件 来到大厂打工已经满一个月了,从一开始的手足无措,到逐渐度过不适期,也算是适应了吧。 不适应 刚入职时,不适应的地方还是挺多的。 第一次只使用台式机工作,这就限制了我一天中的绝大部分时间,都必须呆在自己的工位上,好在工位足够大。只是人与人的沟通少了很多,有问题只能在工位上通过 IM 呼对方,有种魔幻又现实的感觉 第一次只能用 Windows,也不能 WSL,这给我的工作效率带来了很大影响,不能用熟悉的软件,就连写代码用的 VSCode 的...

Jan 24, 20251 min read74

2024年: 逐渐平静

这个世界是一面镜子,会把你的感受反射给你 2024 开端: 相由心生 那时,还带着一着愤懑,因为拿到了低绩效,虽然内心知道这是公司经营困难,想让我离开的一种策略,但仍然感受到自己那可笑的自尊受到了践踏。自那之后,非必要不加班,只做份内事,尽可能地不去涉及份外之事。 2024 年中: 与人为善 组里的项目眼见不行了,我被迫去支援 AI 项目,久违地写起了 python,项目接近完成时,意外收到通知:我拿到大礼包了。在这之前,架构师因故裸辞。在我离开之后不到两周,我的 TL 也裸辞了,直到同事告诉...

Jan 9, 20251 min read92

企业软件之殇

殇 动词 未成年而死。 名词 战死者。 笔者经历了两家打着云原生旗号的企业软件/解决方案公司,都是中途加入,项目都以解(失)散(败)告终。 云原生解决方案 NB 公司:一个传统的 IDC 小厂,想着借云原生的热度,进军企业软件市场。 在加入这个项目之前,笔者考取了 CKAD 认证,彼时对 K8s 相当着迷。先简要介绍一下这个项目背景: 基于 Rancher (换皮肤)的二次开发项目,名字叫:HCaaS ,在笔者加入这个团队之前,项目已经开发近两年了,除了 TL 之外,其它人之前都...

Jul 1, 20241 min read103

just for fun

57 posts

I'm a Software Engineer