美文网首页
如何打好日志,这是一门功夫

如何打好日志,这是一门功夫

作者: HackerZGZ | 来源:发表于2018-01-06 16:28 被阅读0次

    学功夫

    打小起,我就特别喜欢看 功夫电影 ,电影里如 螳螂拳无影脚 等每一门功夫,都有着种种神奇的魔力吸引着我。

    而最近,我从师父那里学到了一门功夫,而星爷曾说过:

    “你想不想学啊,不如我教你啊!” —— 周星驰《功夫》

    受到如此无私的 开源 精神影响,所以特来给大家分享一下这套名为 打日志 的功夫。

    理论

    我们都知道,学功夫首先要有一套基础知识,而学 打日志 这门功夫,首先就要掌握 日志等级 这套知识,而关于这套知识,这里有一本秘籍:日志等级分类宝典

    简单的来说, 日志等级分类 大致有 5 种,分别为:

    • error: 系统正处于 不稳定 状态,客户很可能已经或将要受到影响了,你必须遵守 2AM 守则,即凌晨两点也要立马进行响应。

    • warn:一个 不可预料 的事件发生了,客户有可能受到影响,你应该尽快了解发生了什么事情,并定位到问题的所在。

    • info:生产环境中最 常见 的日志等级,用于记录系统的整个生命周期,当然也包括正常的出错业务事件,如密码错误导致的登录失败等。

    • debug:几乎只用于 调试 ,帮助开发者在开发以及测试阶段更好地发现问题,通常可以设置在特殊流程分支的地方。

    • trace: 等级最低,基本很少使用,使用场景为 追踪 非常详细的数据信息,如:对象的转换、在循环中记录迭代的情况等。

    熟练使用不同日志等级,可以令你在测试以及生产环境中都能更快地定位问题。

    招式

    有了理论知识,接下来就要学 招式 了。招式是一门武术的 基础 ,决定了这门武术的上下限,而在 打日志 这门功夫中,我希望通过简短而有力的 内容 来体现出招式的精妙。

    • 时间:毋庸置疑,时间是日志中最重要的标识,将日志按照时间排序后,程序是如何在运作的,一目了然。

    • 日志等级:通过日志的重要性作出更清晰的日志分类。

    • 进程号:可以识别出属于某次请求的全日志流程。

    • 函数名:可以非常快的将问题锁定在某个函数中。

    • 数据前缀:选择有意义的数据进行展示,方便识别请求的来源,保留案发现场快照。这个前缀可以是 订单号用户识别码 等。

    套路

    好功夫要懂得套路,打日志 也不例外,否则,如果日志打的太多,显得啰嗦;打的太少,无法定位问题的位置。
    最完美的日志应该要达到这种地步: 多打一行嫌多,少打一行嫌少

    下面列举一些我认为需要 打日志时机场景

    • 函数的入口:函数入口的日志是非常重要的,你可以非常快地判断出,传入函数的参数是否有误导致的出现异常,这种日志能帮你减少大量的逻辑思考的时间和精力。

    • 调用其他函数的前后:在调用别的函数,或者远程接口的时候,将 请求的参数 以及 返回的响应 ,也能快速定位问题究竟出现在内部系统还是外部系统。

    • 业务逻辑出错的时候:判断返回给用户的错误信息,是否与业务逻辑内部的错误提示是否一致。

    • 数据上报:在业务系统中,日常的订单成交数、用户注册数等运营数据,接口调用时长、对外接口的耗时等系统监控日志都是时刻需要上报的

    • 特别的分支流程:可以快速定位到是否产生了 脏数据 或外部系统发生了变化等情况。

    终章

    好了, 打日志 这门功夫已经传授完毕了,希望大家看完以后,能有一种迫不及待想要把这套功夫用在自己系统的想法。如果没有,恭喜你,你可以给我们分享一下你的 打日志 功夫,大家一起分享学习,共同进步~

    相关文章

      网友评论

          本文标题:如何打好日志,这是一门功夫

          本文链接:https://www.haomeiwen.com/subject/dtbynxtx.html