JS花里胡哨的日志打印

2023-10-23 11:59
文章标签 日志 js 打印 花里胡哨

本文主要是介绍JS花里胡哨的日志打印,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

JS花里胡哨的日志打印

分享一个自己在无聊的时候写的axios请求错误日志打印美化,有什么新奇的想法欢迎各位大佬们评论区补充。

效果图

默认颜色效果
在这里插入图片描述
随机颜色效果
在这里插入图片描述

使用方式
import { reqErrLog  } from '*.js'
import axios from 'axios'const ins = axios.create({baseUrl: process.env.VUE_APP_BASE_URL,timeout: 10 * 1000
})ins.interceptors.response.use(response => {const { data, config } = response;// 处理异常返回码if (data.code === 500) {reqErrLog(config, data);return Promise.reject(data)}return data
})
代码实现
/*** 花里胡哨请求日志打印* @param {Object} config 请求设置* @param {Object} repData 请求返回结果* @param {Array} ext 拓展打印信息* @param {Array} skin 皮肤数组* @param {Boolean} showDefSkin 是否显示默认配色*/
export const reqErrLog = (config, repData, ext = [], skin = [], showDefSkin = true) => {const baseURL = process.env.VUE_APP_BASE_URL// 皮肤样式rbg色值const defaultSkin = [[9, 176, 233],[171, 146, 212],[169, 193, 238],[51, 60, 130],[252, 169, 127],[140, 219, 229],[99, 190, 205],[244, 98, 134]]const logSkin = skin.length ? skin : defaultSkin// 日志样式const logStyle = (color, size) => {return [`color: rgb(${color.join(',')})`,`font-size: ${size}px`,`text-shadow: 1px 1px 3px rgba(${color.join(',')}, .6)`].join(';')}// 随机生成rgb颜色const generateColor = () => {return new Array(3).fill(0).map(() => Math.ceil(Math.random() * 255))}// 打印信息let infoGroup = [{label: '请求接口',size: 12,content: baseURL + config.url}, {label: '请求方法',size: 12,content: config.method.toUpperCase(),}, {label: '请求参数',size: 12,content: JSON.stringify(config.params)}, {label: '请求数据',size: 12,content: JSON.stringify(config.data)}, {label: '请求头部',size: 12,content: JSON.stringify(config.headers)}, {label: '错误代码',size: 12,content: repData?.error_code}, {label: '错误信息',size: 12,content: repData?.msg}, {label: '请求时间',size: 12,content: `${new Date().toLocaleDateString()} ${new Date().toLocaleTimeString()}`}, ...ext]infoGroup = infoGroup.map((item, index) => {item.color = showDefSkin? logSkin[index + 1 > logSkin.length? (index + 1) % logSkin.length: index]: generateColor()return item})console.group(config.url + '请求错误')for (const key in infoGroup) {const { label, color, size, content } = infoGroup[key]console.info(`%c${label}: %s`, logStyle(color, size), content)}console.groupEnd()
}

这篇关于JS花里胡哨的日志打印的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/267690

相关文章

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

我在移动打工的日志

客户:给我搞一下录音 我:不会。不在服务范围。 客户:是不想吧 我:笑嘻嘻(气笑) 客户:小姑娘明明会,却欺负老人 我:笑嘻嘻 客户:那我交话费 我:手机号 客户:给我搞录音 我:不会。不懂。没搞过。 客户:那我交话费 我:手机号。这是电信的啊!!我这是中国移动!! 客户:我不管,我要充话费,充话费是你们的 我:可是这是移动!!中国移动!! 客户:我这是手机号 我:那又如何,这是移动!你是电信!!

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

使用JS/Jquery获得父窗口的几个方法(笔记)

<pre name="code" class="javascript">取父窗口的元素方法:$(selector, window.parent.document);那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent.parent.document);如题: $(selector, window.top.document);//获得顶级窗口里面的元素 $(

js异步提交form表单的解决方案

1.定义异步提交表单的方法 (通用方法) /*** 异步提交form表单* @param options {form:form表单元素,success:执行成功后处理函数}* <span style="color:#ff0000;"><strong>@注意 后台接收参数要解码否则中文会导致乱码 如:URLDecoder.decode(param,"UTF-8")</strong></span>

js react 笔记 2

起因, 目的: 记录一些 js, react, css 1. 生成一个随机的 uuid // 需要先安装 crypto 模块const { randomUUID } = require('crypto');const uuid = randomUUID();console.log(uuid); // 输出类似 '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'

学习记录:js算法(二十八):删除排序链表中的重复元素、删除排序链表中的重复元素II

文章目录 删除排序链表中的重复元素我的思路解法一:循环解法二:递归 网上思路 删除排序链表中的重复元素 II我的思路网上思路 总结 删除排序链表中的重复元素 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 图一 图二 示例 1:(图一)输入:head = [1,1,2]输出:[1,2]示例 2:(图