当前位置:网站首页 > 产品管理 > 正文

日志管理系统的系统目标(日志管理系统的系统目标包括)



日志主要是用来记录系统的问题信息的,用户做了哪些操作,发生了什么错误,并且进一步定位问题的原因。日志可以帮助我们快速地定位问题。

1、打印调试:即可以用日志记录变量或记录一段逻辑。记录程序运行的流程,即程序运行了那些代码,方便排查逻辑问题。

2、问题定位:程序出异常或者出谷中时快速定位问题,方便后期解决问题。因为线上无法debug,在测试环境模拟一套生产环境,费时费力。所以依靠日志记录的信息定位问题,这点非常重要。

3、用户行为日志:记录用户的操作欣慰,用于大数据分析,比如监控、风控、推荐等等。这种日志,一般是给其他团队分析使用,而且可能是多个团队,因此一般会有一定的格式要求,开发者应该按照这个格式来记录,便于其他团队的使用。当然,要记录哪些行为、操作,一般也是约定好的,因此,开发者主要是执行的角色。

4、 根因分析:即在关键地方记录日志。方便在和各个终端定位问题时,可以定位到到底是谁的问题

  • 不影响系统正常运行;
  • 不允许产生安全问题;
  • 不允许输出机密信息;
  • 日志可供开发人员定位问题的真正原因;
  • 日志可供监控系统自动监控与分析;

日志打印原则:

  • 生产环境禁止输出debug日志;有选择地输出info日志
  • 异常ERROR信息应该包括两类信息:案发现场信息和异常堆栈信息。如果不处理,那么通过关键字throws往上抛出。
  • FATAL:需要立即被处理的系统级错误。系统需要将错误相关痕迹以及错误细节记录FATAL日志中,方便后续人工回溯解决。
  • ERROR:系统发生了错误事件,但仍然不影响系统的继续运行。系统需要将错误或异常细节记录ERROR日志中。
  • error主要针对一些不可预知的错误信息。
  • error日志内容一定要详实。
  • error日志一定是全局统一收集的。
  • 避免在每个类中收集到处都是try: exception。
  • WARN:系统在业务处理时触发了异常流程,但系统可恢复到正常态,下一次业务可以正常执行。如程序调用了一个旧版本的接口,可选参数不合法,非业务预期的状态但仍可继续处理等
  • INFO:记录系统关键信息,旨在保留系统正常工作期间关键运行指标,开发人员可以将初始化系统配置、业务状态变化信息,或者用户业务流程中的核心处理记录到INFO日志中,方便日常运维工作以及错误回溯时上下文场景复现
  • DEBUG:可以将各类详细信息记录到DEBUG里,起到调试的作用,包括参数信息,调试细节信息,返回值信息等等。
  • TRACE:更详细的跟踪信息。

上述日志级别从高到低排列。生产系统一般只打印INFO 级别以上的日志,对于 DEBUG 级别的日志,只在测试环境中打印。打印错误日志时,需要区分是业务异常(如:用户名不能为空)还是系统异常(如:调用 会员核心异常),业务异常使用 warn 级别记录,系统异常使用 error 记录。

1、if..else。

if..else判断是否正确的时候需要在else加入warn日志

2、不打印无意义的日志。

日志里边要带有业务信息,否则意义不大。

错误:logger.Error("Consume message faild!!!")

正确:logger.Error=("Consume message faild, msgId{}".format(id))

3、不推荐使用字符串拼接,建议使用占位符。

4、循环体内不要打印Info日志。

5、打印日志打码任何情况下都不允许发生异常。

6.1 全局业务日志(GwsLog)

目前主要用于问题诊断和排查,主要包括time、appName、hostName、logLevel、TID、msg。

  • time:是日志打印时间,不是服务请求时间,也不是服务响应时间。
  • TID:跟踪ID,skywalking agent自动生成。TID是用户每次请求的ID,触发的不同服务都会标记该ID。
  • msg:自定义输出内容。

6.2 接口访问日志(AccessLog)

记录接口访问的信息,主要用于日志审计。主要包括

日志审计:对每天所记录的信息进行审计和检查,将涉及到的重要信息进行记录。

6.3 业务埋点日志(BizLog)

记录业务埋点日志,主要用于大数据分析。

  • accessTime:日志打印时间,不是用户请求时间。
  • eventTopic:记录埋点的事件名,方便实时计算或同步进行数据筛选,和LogHub中__topic__对应。
  • productLine:数据埋点是跨产品线,模板化设计的,枚举值包括youximao、eusdk、jiaoyihu、bt等。
  • msg:开发人员自定义你输出内容。主要用于埋点字段的数据记录,为了防止logHub在生产端解析是出错而导致数据丢失,msg将所有埋点字段进行打包,在消费端(spark实时计算解析或者投递前logHub解析)再进行解析,即保证了数据安全,又解决了数据解析问题。
到此这篇日志管理系统的系统目标(日志管理系统的系统目标包括)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 产品经理技能证书(产品经理人证书)2024-12-20 17:00:07
  • 文件管理视频彻底删除了怎么找回(文件管理视频彻底删除了怎么找回不收费软件)2024-12-20 17:00:07
  • 产品经理 教程(产品经理教程百度云)2024-12-20 17:00:07
  • 进程管理器快捷键win11系统(windows 进程管理快捷键)2024-12-20 17:00:07
  • 产品经理入门难吗(产品经理入门难吗工资高吗)2024-12-20 17:00:07
  • 产品经理入门书籍哪本好(产品经理相关书籍推荐)2024-12-20 17:00:07
  • 电脑怎么打开任务管理器(联想电脑怎么打开任务管理器)2024-12-20 17:00:07
  • acl权限模型(acl权限管理)2024-12-20 17:00:07
  • acl权限模型(acl机制 管理权限)2024-12-20 17:00:07
  • 文件管理的音频怎么保存到本地(文件管理里的音频怎么发到微信)2024-12-20 17:00:07
  • 全屏图片