调试利器:浏览器 Logger

1. 前言

在一些业务系统中,由于集成的平台产物或工具较多,而这些产物的 log 不收敛,很多时候打开控制台就是满屏的 log,自己的 log 需要在满屏的 log 中查找,或者在 log 上加一些前缀用 Filter 去过滤,严重影响效率。

别人的 log 是动不了了,那自己的 log 是否可以收敛起来,自动加前缀,自动按日志级别显隐,功能全一点,样式好看一些,即便你的项目被别人集成了,也能能清晰的知道日志是谁发出来的。

npm 上找了一些 logger,要么功能不全,要么不够醒目。做个 logger 也没几行代码,就写了下面这个库。

2. Lp-Logger

浏览器端 logger 工具,颜色是从 AntD 的色彩规范中找的。

2.1 API

declare module "lp-logger" {type Level = "error" | "warn" | "log";interface IProp {level?: Level;name?: string;search?: string;}export default class Logger {constructor(prop?: IProp);log(...args: any[]): void;warn(...args: any[]): void;error(...args: any[]): void;debug(...args: any[]): void;groupCollapsed(...args: any[]): void;groupEnd(...args: any[]): void;}
}

2.1.1 构造方法

名称说明默认值
level日志级别。用于控制哪些类型的日志类型可以显示。 (error: 只显示 error,warn: 显示 warn/error,log: 显示所有)。当有search 的 URL 查询参数时,search 的优先级最高。“log”
name输出日志中,颜色块的上文本。可以为不同项目、页面指定不同的 name,方便筛选和说明来源。“lp-logger”
search用于通过 URL 参数控制显示级别,值与 level 的一致“__lp_logger_level”

2.2 安装

支持 CDN 安装和 NPM 安装。

<script src="https://unpkg.com/lp-logger"></script><script>// new LpLogger();
</script>

2.2.2 NPM 安装

npm i -S lp-logger

2.3 使用

2.3.1 信息分组

import LpLogger from "lp-logger";const logger = new LpLogger({name: "项目A",
});logger.groupCollapsed("折叠信息1");logger.log("log");logger.groupCollapsed("折叠信息2");logger.error("error");logger.debug("debug");logger.groupEnd("end");logger.warn("warn");
logger.groupEnd("end");

2.3.2 只显示错误和警告信息

import LpLogger from "lp-logger";const logger = new LpLogger({name: "项目B",level: "warn",
});logger.log("log");
logger.error("error");
logger.debug("debug");
logger.warn("warn");

2.3.3 URL 控制显示

import LpLogger from "lp-logger";const logger = new LpLogger({name: "项目C",level: "", // 空字符串时,不显示任何信息search: "__lp_logger_level", // 配置 URL 控制参数
});logger.log("log");
logger.error("error");
logger.debug("debug");
logger.warn("warn");

URL 控制参数优先级最高,所以日志正常显示:


Github Repo: https://github.com/lecepin/lp-logger

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

主动型页面性能利器:Page Status

1. 背景 当页面出现性能问题&#xff0c;如加载慢、页面卡顿等现象时&#xff0c;大多是用户主观上的感受。而要真正客观的去评测性能和定位问题原因&#xff0c;通常需要专业的前端同学通过 DevTools 中的 Performance 等工具来查看&#xff08;如图 1 所示&#xff09;&…

前端状态机:XState 首个中文文档上线了

XState 做为一个非常好用的前端状态机库&#xff0c;但官网文档却只有英文版&#xff0c;为了阅读体验&#xff0c;我这里翻译了中文版。 仓库地址&#xff1a;https://github.com/lecepin/xstate-docs-cn文档地址&#xff1a;https://lecepin.github.io/xstate-docs-cn/zh 由…

降低前端业务复杂度新视角:状态机范式

无论做业务需求还是做平台需求的同学&#xff0c;随着需求的不断迭代&#xff0c;通常都会出现逻辑复杂、状态混乱的现象&#xff0c;维护和新增功能的成本也变的十分巨大&#xff0c;苦不堪言。下图用需求、业务代码、测试代码做对比&#xff1a; 图中分了 3 个阶段&#xff1…

Mac 摸鱼神器

这是一个 Mac 系统的摸鱼应用&#xff0c;仿真了大多数的 Mac 系统黑屏故障。开启摸鱼功能后&#xff0c;可以给自己一段休息的时间~ 软件使用 Electron 开发&#xff0c;源码&#xff08;欢迎 Star ⭐ &#xff09;&#xff1a;https://github.com/lecepin/mac-fish 1. 主界…

前端状态机系列:SCXML与XState对应关系

1. 前置说明 这次再说明下自己对状态图的看法。状态图虽然有非常多的优势&#xff08;参考上篇文章&#xff09;&#xff0c;如果你想使用&#xff0c;关于是否对整个旧项目进行全量状态图化&#xff0c;这里给一个适应范围是&#xff1a;项目中复杂的部分进行状态图建模是非常…

常用注入 Script 方法

1. 背景 如果你想在当前的页面&#xff0c;试一下某个 JS 工具库&#xff0c;而这个工具库恰好你没安装。&#xff08;如 lodash&#xff09;如果你想分享一段脚本给别人&#xff0c;而又不希望别人在执行的过程太过麻烦。&#xff08;如你写了一段恢复复制和右键功能的脚本&a…

多年前的树莓派 B+ 重新工作

1. 前言 最近整理房间的时候&#xff0c;发现在一块大约在 2014 年购买的树莓派&#xff0c;看了下电路板&#xff0c;型号是 b&#xff0c;看了下官网的参数&#xff1a; CPU: ARM1176JZF-S 核心 700MHz 单核RAM: 512MB 确实有点太弱了。 最近刚好想做一个家用的文件 Serve…

create-react-app 使用代理做 mock

1. 背景 很多情况下&#xff0c;为了测试需要一些接口的 mock 场景&#xff0c;基于 create-react-app 生产的项目 好处在于它内置了这块代理的能力&#xff0c;给用户提供了很大的方便。 2. 代理方式 create-react-app 默认提供了两种方式&#xff0c;关联到 webpack-dev-s…

解决写文档对于图片边框的强迫症

1. 写文档的困扰 在写文档进行配图时&#xff0c;很多时候图片是白色背景的&#xff0c;会导致文章中的图片区域附近有大量空白的感觉&#xff0c;强迫症患者很难受。 目前语雀做的是很好的&#xff0c;可以给图片加边框或者阴影&#xff0c;而一些文档博客平台&#xff08;C…

实现图片本地化 ServiceWorker + IndexedDB

1. 背景 在一些安全场景&#xff0c;或者一些本地化的场景&#xff08;如本地化的 Markdown 记事本&#xff09;&#xff0c;如果有图片上传并需要查看的场景&#xff0c;在不上传到服务器的情况下&#xff0c;实现这个效果&#xff0c;通常是把图片 Base64 化&#xff0c;但编…

XState Viz 可视化和调试状态机

1. 前言 状态机的一大好处就是可以可视化状态&#xff0c;降低业务的理解成本和相互间的沟通成本。 目前 XState 官方提供的可视化工具已经做的很不错了&#xff0c;但用起来偏重&#xff0c;国内访问也比较慢。这边我再原基础上进行了优化&#xff0c;并增加了部分新功能&am…

国内高速前端 Unpkg CDN 替代方案

1. 背景 目前国内有很多 NPM 的 CDN&#xff0c;可以高速支持相关包文件的访问下载&#xff0c;如&#xff1a; BootCDN: www.bootcdn.cn七牛云: www.staticfile.org360: cdn.baomitu.com字节跳动: cdn.bytedance.com 但这些 CDN 并不全&#xff0c;很多 NPM 上的包 在这些 …

小米 12S Utra 莱卡水印生成在线工具

前言 最近看到小米 12S Utra 的发布&#xff0c;看了下详情页面&#xff0c;发现演示的照片都好看的&#xff0c;包含了品牌、设备、镜头、位置等信息&#xff0c;如下图所示&#xff1a; 作为一个摄影爱好者&#xff0c;也希望把自己的照片也输出这些信息。 但目前此类水印…

解决 Rust Tauri 1.0 构建时下载 WiX失败

Rust 啥都好&#xff0c;就是构建太慢太慢。用我的 M1 构建 Mac 应用 10 分钟内还能拿下&#xff0c;但其它普通配置的就太慢了&#xff0c;即便用 Github Actions 大约也近 30 分钟才能构建完&#xff1a; 找一台高配置的 Windows 主机&#xff0c;结果经历了长时间的编译之后…

Rust Wasm 图片转 ASCII 艺术

有一些隐藏在代码中的 ASCII 有意思的图片&#xff0c;如&#xff1a; /*__ooOoo_o8888888o88" . "88(| -_- |)O\ /O____/---\____. \\| |// ./ \\||| : |||// \/ _||||| -:- |||||_ \| | \\\ - /| | || \_| \---// |_/ |\ .-\__ -. -__/-.…

我的新书《PWA入门与实践》上市了

前言 我初接触PWA是在2017年年初&#xff0c;当时参加了一个前端分享会&#xff0c;其中一个主题就是与PWA相关的&#xff0c;介绍了PWA的Service Worker和安装到桌面的能力&#xff0c;以及这门技术未来的发展趋势&#xff0c;听完这个分享后&#xff0c;我就为PWA的一些能力…

Linux ARM交叉编译工具链制作过程

一、下载源文件 源代码文件及其版本与下载地址&#xff1a; Binutils-2.19.tar.bz2 http://ftp.gnu.org/gnu/binutils/ gcc-4.4.4.tar.bz2 http://mirrors.kernel.org/gnu/gcc/gcc-4.4.4/ Glibc-2.11.2.tar.bz2 Glibc-ports-2.11.tar.bz2 http://ftp.gnu.org/gnu/glibc/ Gmp-4.…

数学建模之聚类模型详解

聚类模型 引言 “物以类聚&#xff0c;人以群分”&#xff0c;所谓的聚类&#xff0c;就是将样本划分为由类似的对象组成的多个类的过程。聚类后&#xff0c;我们可以更加准确的在每个类中单独使用统计模型进行估计、分析或预测&#xff1b;也可以探究不同类之间的相关性和主…

Unity Hub安装Android Build Support报错:Failed to delete old Unity Android Supprtinstallation files

安装失败&#xff1a; 解决方法&#xff1a; 需要先安装 Android Build Support &#xff0c;再安装 Android SDK & NDK Tools 和 OpenJDK 其他情况&#xff1a; 如果已经安装了Android SDK & NDK Tools 和 OpenJDK&#xff0c;只剩Android Build Support 未安装成功…

红米5 Plus刷开发版/小米手机刷开发版

到官网选择对应手机型号下载Rom包&#xff1a;MIUI下载 下载完成后手机打开&#xff1a;设置→我的设备→MIUI版本→右上角选择【手动选择安装包】&#xff0c;找到下载的包等待手机重启就行了。 PS&#xff1a;如果是像下面这样 小米手机找不到手动选择安装包 选项的话&#…