前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >输出日志需要注意的那些事

输出日志需要注意的那些事

作者头像
普通程序员
发布2019-10-23 11:51:07
4490
发布2019-10-23 11:51:07
举报

项目都需要输出日志,用于反应系统运行状态或者数据统计。以下内容是个人在服务端系统日志数据的一些经验。

1、日志存储位置要统一

对于单个项目,日志放在什么位置并不是特别重要,只要有足够存储空间就行。但是对于工程化的项目,日志存储位置非常重要。公司一般都有统一的运维团队,各个业务系统产生的日志都需要交给运维团队维护。因此,所以系统日志都遵循一个统一的存放路径规则很重要,运维团队可以方便的进行日志的监控、抓取、转移及删除。项目组成员也知道去哪里查找日志。

建议日志存储位置 /aaa/bbb/项目英文名/

不同工程的日志,都放在目录/aaa/bbb/下,以项目英文名称做项目日志存放目录。

2、日志需要分级

日志最好按照info,warn,error不同级别分文件存储。比如info级别日志存储到info.log文件,warn级别日志存储到warn.log文件,error级别日志存储到error.log文件。分别存储的好处是,查看日志文件时,能很容易发现系统是否出现异常或错误日志(正常情况下,info日志很多,warn,error日志相对较少)。

实际操作中,我在info.log日志中也输出warn和error的日志。

3、日志需要分段

日志文件会随着时间的推移不断增大。文件过大,对文件的检索、查询等操作都会变得缓慢,另外磁盘也不能无限制的存储文件。因此日志需要分段存储。常见的做法按天分割日志。比如 info.2017-08-20.log表示8月20日生成的日志。

4、日志存储和归档

服务器的磁盘不用保存系统的所有日志。一般服务器上保存15天的日志(根据实际业务确定),其他的日志可以转移到别的地方存储,比如HDFS。

5、日志内容格式尽量规范

日志后续会用于分析或统计。如果有规范的格式,后续分析统计功能处理起来要方便得多。比如日志格式为 key1=value1 key2=value2 key3=value3 ……后续甚至可以开发一个统一的统计分析系统,只需要简单配置就能分析统计日志。

6、分布式环境下日志可追溯

日志的另一个功能是排查定位问题。在分布式系统中,由于服务部署节点非常多,一个请求调用链较长,如何通过日志跟踪某次请求的调用路径非常重要。可以在每次请求入口生成一个唯一的uuid,分布式调用的每个环节都将这个uuid往下传,每个分布式节点都将uuid输出到日志。所有分布式节点,相同uuid的日志就构成了一次请求的全过程。

有了这个设计,可以很轻松定位分布式环境下的问题。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 普通程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档