.Net Web API 日志方案

这两周在星球,刚好完成了日志功能相关的课程。今天我们一起来聊聊,一个完整的日志方案与日志的实现。

一、日志的作用

任何系统都少不了日志功能,日志记录主要有以下4个作用:

1、问题排查:方便运维人员日常运维,开发人员定位系统问题、快速修复;

2、监控日志:记录系统功能使用情况、异常日志等,有助于监控系统资源的使用,方便后续调整;

3、日志留痕:特别是与外部系统对接,方便协作排查、事故定责的证据等;

4、审计用户行为:记录系统用户的登录、功能操作明细等,方便监控敏感操作行为。

二、日志设计

系统日志设计主要包括以下7个内容:

1、日志配置:可以根据实际需求,配置日志的级别、格式、存储和轮换等参数。日志的级别包括调试信息、警告信息、错误信息和严重错误信息等。

2、日志内容:支持指定的格式记录系统日志信息,这些日志信息可以包括时间戳、模块名称、日志级别、消息内容等。

3、日志存储:将记录的日志信息存储到指定的位置,例如文件、数据库或远程服务器等。在实际项目开发,需要合理配置日志存储的位置和方式,以便于进行日志管理和分析。

4、日志轮换:随着时间的推移,日志文件可能会变得庞大,因此需要考虑日志轮换的问题。可以设置日志轮换的条件和方式,例如按照日期或文件大小进行轮换。

5、日志安全:日志涉及敏感数据的,我们可以通过访问控制和加密等措施,来保护日志信息的安全性,以避免日志信息泄露或被恶意利用。

6、日志分析:通过使用日志分析工具,可以对日志信息进行处理和分析,包括发现和解决问题、了解系统性能和用户行为等。

7、日志管理:定期对日志进行维护和管理,包括清理、备份和归档等操作,以确保日志信息的完整性和可靠性。

三、日志实现

下面梳理下星球的专栏,具体的日志实现方案。

3.1 采用Log4Net日志组件

Log4Net一款非常著名的记录日志开源组件,可以很好的满足日志配置、日志轮换的需求,只需简单配置就可以。

当然了,大家也可以根据自己的需求和喜欢,选择其他日志组件,比如NLog、Serilog、或者其他组件。

4bebc4ed185e28ac95365e539154d40b.png

3.2 全局异常

在专栏课程里,我们采用全局异常捕捉机制,避免未处理的异常遗漏。

d2c683bd8e1882e847aa56f163fb9402.png

3.3 API请求日志记录

为了方便运维、以及跟踪系统,只是记录异常日志远远不够。

所以系统还记录了API请求日志,日志内容包含:请求地址、请求参数、返回结果、请求时间、接口花费时间、IP、异常信息等。

为了方便查询与排查,API日志存储在数据库中。

73cd8b90bf4b327f97e9a782db22321f.png

3.4 日志开关

还支持API接口日志配置,配置是否需要记录API请求日志,不配置默认是记录的。

724a3db09fc518d9ecd702376aa98ee1.png

3.5 API返回数据脱敏处理

数据安全与隐私保护是非常关键的,这时候我们就需要数据脱敏技术,来保护数据的安全。

针对一些客户的隐私数据,比如手机号码、生日、家庭地址等,在前端页面展示都要模糊显示。

我们系统支持在相应字段,配置脱敏转化器,来实现脱敏处理。

fee6ae5f0ed3809228c77fd9be6349c8.png

前端显示效果:

f209a4bbf7693c26c93f566a4320535b.png

3.6 API请求日志脱敏处理

接口返回给前端需要脱敏处理,同样的在服务器记录的日志,针对敏感信息也要进行脱敏处理。

同样的只需在相应字段,配置脱敏转化器,来实现脱敏处理。

6c1bb8027e6a88f3c6afec45d6bf4b73.png

效果如下:

f0b4a7877ff4e78075bf49ce445eec0d.png

四、总结

根据以上实现的方案,可以满足绝大部分的中小型项目。如果是大型、分布式的项目,可以引入第三方日志系统,比如ELK,可以更好的满足日志分析与日志管理的需求。

-

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值