前端日志管理模块的设计与实现

一、前端问题背景

在项目中,日志我们会频繁用到 ​​console.log()​​ 来输出一些关键信息到控制台中,管理有助于开发调试,模块以及问题的计实排查,待项目上线后,前端这些调试日志又得及时清除。日志

同时在前端质量要求下,管理我们会做“前端埋点”,模块用于远程上报一些关键行为信息,计实用于在出问题时还原用户的前端操作路径,复现 BUG,日志从而解决问题,管理而各种各样的模块上报若是能在业务开发中抹平差异,也有助于研发提效。计实

因此,有必要在团队中封装日志工具(Logger),用于统一管理日志输出和格式化上报,网站模板降低开发者对多平台上报差异的心智负担。

二、需求概述

预期日志管理工具(Logger)需要有如下能力:

支持区分​​info​​​、​​warn​​​、​​error​​ 三种本地调试类型日志支持远程上报自定义日志​​report()​​支持设置 namespace,用于区分代码执行的 scope支持链式操作区分生产环境和开发环境,生产环境禁止输出日志到控制台支持功能可扩展

三、方案设计

在阅读完 Axios 的源码后,个人认为 Axios 里对于设计模式的应用是非常灵活,同理,一个好的日志工具也应当遵守着一定的软件设计模式原则。

作为项目中用到的日志工具,单例模式应当是云服务器提供商更适合的选择!

Logger 的打印输出能力,本质上还是借助了 ​​window.console​​ 对象中的方法:

Console 对象

在面向对象编程中,我们可以认为 ​​console​​ 是一个已经初始化的实例,同时也是一个单例,因为它是全局唯一。

而单例模式的最大好处就是全局唯一,对于做日志统一管理有着天然的友好支持基础。

四、实现细节

高防服务器
人工智能
上一篇:记住那句话,域名向来不属于任何人,谁先买就归谁,购买期过后,域名又不再属于任何人。
下一篇:注册域名要了解几大点?新手有什么方式注册域名?