console.log封装
console.log封装
在控制台中打印带有颜色和格式的日志信息。
/*** 检查给定的对象是否为数组*/
const isArray = function (obj: any): boolean {return Object.prototype.toString.call(obj) === '[object Array]'
}/*** Logger 构造函数*/
Logger = () => {}/*** 根据日志类型返回对应的颜色*/
Logger.typeColor = function (type: string) {let color = ''switch (type) {case 'primary':color = '#2d8cf0'breakcase 'success':color = '#19be6b'breakcase 'info':color = '#909399'breakcase 'warn':color = '#ff9900'breakcase 'error':color = '#f03f14'breakdefault:color = '#35495E'break}return color
}/*** 打印日志信息,可选择是否带有背景色*/
Logger.print = function (type = 'default', text: any, back = false) {if (typeof text === 'object') {// 如果是對象則調用打印對象方式isArray(text) ? console.table(text) : console.dir(text)return}if (back) {// 如果是打印帶背景圖的console.log(`%c ${text} `,`background:${Logger.typeColor(type)}; padding: 2px; border-radius: 4px; color: #fff;`)} else {console.log(`%c ${text} `,`border: 1px solid ${Logger.typeColor(type)};padding: 2px; border-radius: 4px;color: ${Logger.typeColor(type)};`)}
}/*** 打印带有背景色的日志信息*/
Logger.printBack = function (type = 'primary', text) {this.print(type, text, true)
}/*** 打印格式化的日志信息,可选择是否带有背景色*/
Logger.pretty = function (type = 'primary', title, text) {if (typeof text === 'object') {console.group('Console Group', title)console.log(`%c ${title}`,`background:${Logger.typeColor(type)};border:1px solid ${Logger.typeColor(type)};padding: 1px; border-radius: 4px 0 0 4px; color: #fff;`)isArray(text) ? console.table(text) : console.dir(text)console.groupEnd()return}console.log(`%c ${title} %c ${text} %c`,`background:${Logger.typeColor(type)};border:1px solid ${Logger.typeColor(type)};padding: 1px; border-radius: 4px 0 0 4px; color: #fff;`,`border:1px solid ${Logger.typeColor(type)};padding: 1px; border-radius: 0 4px 4px 0; color: ${Logger.typeColor(type)};`,'background:transparent')
}/*** 使用 primary 类型打印格式化的日志信息*/
Logger.prettyPrimary = function (title, ...text) {text.forEach((t) => this.pretty('primary', title, t))
}/*** 使用 success 类型打印格式化的日志信息*/
Logger.prettySuccess = function (title, ...text) {text.forEach((t) => this.pretty('success', title, t))
}/*** 使用 warn 类型打印格式化的日志信息*/
Logger.prettyWarn = function (title, ...text) {text.forEach((t) => this.pretty('warn', title, t))
}/*** 使用 error 类型打印格式化的日志信息*/
Logger.prettyError = function (title, ...text) {text.forEach((t) => this.pretty('error', title, t))
}/*** 使用 info 类型打印格式化的日志信息*/
Logger.prettyInfo = function (title, ...text) {text.forEach((t) => this.pretty('info', title, t))
}export default Logger
相关文章:
console.log封装
console.log封装 在控制台中打印带有颜色和格式的日志信息。 /*** 检查给定的对象是否为数组*/ const isArray function (obj: any): boolean {return Object.prototype.toString.call(obj) [object Array] }/*** Logger 构造函数*/ Logger () > {}/*** 根据日志类型返回…...

戴尔/Dell 电脑按什么快捷键可以进入 Bios 设置界面?
BIOS(基本输入输出系统)是计算机硬件与操作系统之间的桥梁,它负责初始化和测试系统硬件组件,并加载启动操作系统。在某些情况下,如调整启动顺序、更改系统时间或日期、修改硬件配置等,您可能需要进入BIOS进…...

GitLab创建用户,设置访问SSH Key
继上一篇 Linux Red Hat 7.9 Server安装GitLab-CSDN博客 安装好gitlab,启用管理员root账号后,开始创建用户账户 1、创建用户账户 进入管理后台页面 点击 New User 输入用户名、邮箱等必填信息和登录密码 密码最小的8位,不然会不通过 拉到…...

Mysql--基础篇--SQL(DDL,DML,窗口函数,CET,视图,存储过程,触发器等)
SQL(Structured Query Language,结构化查询语言)是用于管理和操作关系型数据库的标准语言。它允许用户定义、查询、更新和管理数据库中的数据。SQL是一种声明性语言,用户只需要指定想要执行的操作,而不需要详细说明如何…...
比较 FreeSWITCH 的 asr 事件和回调函数
用 lua 来描述,是这样的 第一种做法: session:setVariable("fire_asr_events", "true") session:execute("detect_speech", "start-input-timers") 识别到结果之后可以收到 DETECTED_SPEECH 事件 另外一个做法…...

基于ffmpeg和sdl2的简单视频播放器制作
基于ffmpeg和sdl2的简单视频播放器制作 前言一、视频播放器开发的基础1.1 视频播放原理1.2 开发所需的库 二、FFmpeg库详解2.1 FFmpeg库的组成2.2 关键数据结构2.3 打开视频文件并获取流信息2.4 查找视频流和解码器2.5 初始化解码器 三、SDL库详解3.1 SDL库的功能3.2 初始化SDL…...
卫星导航信号的形成及解算
引言 卫星导航信号是现代导航技术的核心,它利用卫星发射的信号实现全球范围内的精确定位和导航。本文将详细介绍卫星导航信号的形成及解算过程。 一、卫星导航信号的形成 卫星导航信号的形成主要包括信号的生成、调制和传播三个步骤。 1. 信号的生成 卫星导航信号主…...

硬件-射频-PCB-常见天线分类-ESP32实例
文章目录 一:常见天线1.1 PCB天线①蓝牙模块的蛇形走线-天线②倒F天线-IFA:③蛇形倒F天线-MIFA④立体的倒F天线-PIFA 1.2 实例示意图1.21 对数周期天线(LPDA):1.22 2.4GHZ的八木天线:1.23 陶瓷天线:1.24 外接天线: 二&…...
salesforce 验证规则判断一个picklist是否为none
在 Salesforce 验证规则中,如果你想判断一个 Picklist 字段是否等于 None,可以使用 ISPICKVAL 函数。 以下是具体的公式: ISPICKVAL(Picklist_Field__c, "None")示例解释: Picklist_Field__c: 是你的自定义 Picklist…...

解决 IntelliJ IDEA 中 Tomcat 日志乱码问题的详细指南
目录 前言1. 分析问题原因2. 解决方案 2.1 修改 IntelliJ IDEA 的 JVM 选项2.2 配置 Tomcat 实例的 VM 选项 2.2.1 设置 Tomcat 的 VM 选项2.2.2 添加环境变量 3. 进一步优化 3.1 修改 Tomcat 的 logging.properties3.2 修改操作系统默认编码 3.2.1 Windows 系统3.2.2 Linux …...
如何分析 Nginx 日志
分析 Nginx 日志可以帮助我们了解服务器性能、流量来源、用户行为,以及诊断问题(如错误和攻击)。以下是详细的分析方法: 1. 日志类型 Nginx 有两种主要日志: 访问日志 (Access Log):记录客户端对服务器的…...
Kubernetes Gateway API-5-后端协议和网关基础设置标签
1 后端协议 自 v1.2.0 开始支持 并非所有网关API实现都支持自动协议选择。在某些情况下,协议在没有明确选择加入的情况下被禁用。 当 Route 的后端引用Kubernetes Service 时,应用程序开发人员可以使用 ServicePort appProtocol 字段指定协议。 例如…...

大数据架构演变
一、离线数仓 缺点: ETL计算、存储、时间成本高数据处理链路过长无法支持实时、近实时的数据分析数据采集对业务库造成影响 二、Lambda架构,离线实时分开 缺点: 组件多,不方便管理很难保证数据一致数据探查困难,出现…...
Bash语言的软件工程
Bash语言的软件工程 1. 引言 Bash(Bourne Again SHell)是一个Unix Shell和命令语言解释器,最初由Brian Fox为GNU项目编写。Bash不仅是Linux和macOS等现代操作系统的标准Shell,同时也是很多开发者和系统管理员进行自动化任务、开…...

OpenGL —— 流媒体播放器 - ffmpeg解码rtsp流,opengl渲染yuv视频(附源码,glfw+glad)
效果 说明 FFMpeg和OpenGL作为两大技术巨头,分别在视频解码和图形渲染领域发挥着举足轻重的作用。本文将综合两者实战视频播放器,大概技术流程为:ffmpeg拉取rtsp协议视频流,并经过解码、尺寸格式转换为yuv420p后,使用opengl逐帧循环渲染该yuv实时视频。 核心源码 vertexSh…...
CE中注册的符号地址如何通过编程获取
我的方式是先执行lua申请共享内存,内存名称是进程id,这样多开也不受影响,然后通过共享内存的名字就可以读到地址了。之后的人造指针的地址也都可以放这里集中管理。 -- 申请内存 local size 1024 -- 申请 1024 字节(1 KB&#…...
Math Reference Notes: 积分因子
在求解一阶线性微分方程时,积分因子(Integrating Factor)是一个非常重要的工具,它能够将复杂的微分方程转化为一个可以直接积分的形式。通过使用积分因子,我们可以简化微分方程的结构,使得求解过程更加直接…...

解决7-Zip图标更换问题
手动美化7-Zip图标,告别Win95风格 之前下载的7z压缩的文件图标都是软件的黑白图形,但是电脑重置了默认应用后再改回7z,压缩的文件就变成黄色的图标了,试过很多问题,尝试过手动更改图标,或者代码更改&#…...

Java 性能监控工具详解:JConsole、VisualVM 和 Java Mission Control
在 Java 应用程序的开发和维护过程中,性能监控和故障诊断是至关重要的。本文将详细介绍三款常用的 Java 性能监控工具:JConsole、VisualVM 和 Java Mission Control(JMC),并探讨它们的功能和使用方法。 1 JConsole 1…...

浏览器报错:您的连接不是私密连接,Kubernetes Dashboard无法打开
问题描述 部署完成Kubernetes Dashboard后,打开HTTPS的web页面,Chrome和Edge浏览器都无法正常加载页面,会提示您的连接不是私密连接的报错。 原因: 浏览器不信任这些自签名的ssl证书,为了…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...

回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...
13.10 LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析
LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析 LanguageMentor 对话式训练系统架构与实现 关键词:多轮对话系统设计、场景化提示工程、情感识别优化、LangGraph 状态管理、Ollama 私有化部署 1. 对话训练系统技术架构 采用四层架构实现高扩展性的对话训练…...