再看日志

从刚入行开始就听说日志日志,那时候自己还比较懒,所以就没在意日志的作用。总觉得,只不过是一个辅助判断的,十分冗余的信息罢了。

工作7余年,中间经历过服务突发异常,而日志不完整,人肉 console查询日志的痛苦。
于是痛定思痛,觉得是时候重新审视一下日志的作用和概念了。

日志是一门琐碎信息,数据化的艺术,他是他数据的基础。
我认为更合理的说法应该是“日常数据”,而不是“日志”。

日志的分类

一个系统正常的运行,涵盖了业务逻辑,与基建。
日志是贯穿所有系统的。也就是说,我们可以有基于业务的日志,用来帮助业务人员分析公司业务。
我们也可以有基于基建的日志,作用是帮助分析系统运行过程中的性能与瓶颈,帮助提升系统的运作效率和用户体验。

从日志的级别分类来说,一般可以分为:

  • emergency 紧急
  • alert 告警
  • critical 严重
  • error 错误
  • warning 警告
  • notice 提示
  • info 信息
  • debug 调试

日志的形式

日志可以有好多形式,因为我比较偏向于他是一个大数据之说,所以我也更倾向于有一个专门的地方,存储,分析,沉淀日志数据。

比如用 elk 的方式,可以看我另一篇关于 elk 的使用

另外就是统一以本地文件的形式。因为直接扔 elk 中间可能会出现一个连接断层,导致日志丢失,并且网络传输没有本地读写快速稳定。
所以先用本地文件的形式存储,然后通过 filebeat 或 logstash 推送,可以适用于一般对于日志实时性不高的应用。

命令行输出,这种日志一般用于本地 debug。命令行输出也会被用于查看 nohup 文件。