系统异常日志规范的一种实践

日志的重要性就不赘述了,本编文章是介绍系统业务异常日志打印规范的一种实现,日志打印的方式、日志级别等支持配置化,灵活控制日志输出。

一.背景

不管你是普通的开发人员还是系统负责人,日常工作中最重要的两件事:业务需求开发、系统稳定性,把这两点做好才是一个合格的开发人员。系统异常日志的治理是提升系统稳定性很重要的一步,系统异常治理也可以发现调用方系统问题,推动外围修复,优化调用链路。

系统的异常打印如果没有一个规范,将是灾难性的,什么问题都有可能发生,例如大量无用日志的打印会影响系统性能、日志打印不清晰或者不打印会导致线上问题无法快速定位并解决等。文章简单的介绍了如何在遵守日志打印规范前提下,封装统一的日志打印方法并能够支持灵活配置化。

二.解决的问题

  1. 封装统一日志打印方法,关键信息作为方法入参必填,这样能规范日志调用,便于异常分析。
  2. 灵活配置化,部分异常日志不需要打印或者根据调用方屏蔽已知业务异常,避免大量无用的日志输出影响性能。

例如外围调用接口服务,由于入参的某个字段格式传错了,正常的处理逻辑是接口返回返回字段格式错误的错误码给调用方并打印错误日志,如果外围发现这个错误但是不及时修复,就会导致服务方的日志量很大,也会影响性能,这时需要可以支持灵活调整,可以临时不输出异常,等待外围修复后再打开。

三.异常简单介绍

系统服务一般有两种主要异常,业务异常和系统异常。

  1. 业务异常是服务的参数校验、业务不满足等异常,例如入参字段格式错误、新用户注册提示手机号已被使用等,需要封装错误码返回给调用方,外围根据错误码做相关的逻辑处理,例如提示用户。
  2. 系统异常是数据库异常、网络超时、内存溢出、宕机、验机系统存在的bug导致的未知异常等,需要打印堆栈分析具体原因,不需要具体提示,因为调用方或者用户不需要关心具体的错误。

四.功能实现

 

  1. 封装通用的日志方法,系统所有异常按照规范调用工具类方法打印日志
  2. 新增异常日志配置表,能根据调用系统、服务编码(接口名/JOB/功能模块)、错误码等灵活配置打印的日志类型。

         配置表模型:系统号、服务编码、错误码、输出日志级别、备注、版本排期、新增/更新时间、配置新增/更新人员姓名、操作后台IP地址等常用字段。

     3.日志打印优先级配置

日志处理优先级:错误码+系统号+服务编码 > 错误码+系统号+empty > 错误码+empty+服务编码 > 错误码+empty+empty,如果无配置默认输出堆栈日志

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值