当前位置: 首页 > news >正文

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证书,为了…...

07_NVIDIA Triton Java API:企业级高性能推理服务

NVIDIA Triton Java API:企业级高性能推理服务 摘要:NVIDIA Triton 是业界最先进的模型推理服务软件,支持多框架并发执行和动态批处理。本文深入解析 Triton 架构、Java API 的两种形态、TensorRT-LLM 后端集成,以及如何构建高性能…...

兔抗V5标签抗体亲和纯化:从低丰度到高表达的精准定量方案

一、产品概述V5标签是一种由14个氨基酸残基组成的短肽标签,序列为GKPIPNPLLGLDST,源自猴副流感病毒5型(Simian virus 5)RNA聚合酶α亚基。作为一种表位标签,V5标签具有分子量小(约1.4 kDa)、免疫…...

树莓派+匿名飞控:不用遥控器,手把手教你搭建自主无人机的大脑与神经

树莓派匿名飞控:构建无遥控自主无人机的核心技术解析 当传统无人机还在依赖遥控器手动操控时,一种更智能的解决方案正在悄然兴起——通过树莓派与匿名飞控的协同工作,实现完全自主的飞行决策与控制。这种架构不仅解放了操作者的双手&#xf…...

别再浪费你的ESP32-S3R8了!手把手教你将PSRAM用作高速缓存或大数组存储

解锁ESP32-S3R8的隐藏性能:8MB PSRAM实战开发指南 当你在ESP32-S3R8开发板上运行内存密集型应用时,是否经常遇到"内存不足"的报错?这就像开着跑车却只能以自行车速度行驶——硬件潜力被严重浪费。实际上,这款芯片内置的…...

【AI】测试Agent:执行式AI自动化测试

测试Agent:执行式AI自动化测试 📝 本章学习目标:本章展示行业实战案例,帮助读者将理论应用于实践。通过本章学习,你将全面掌握"测试Agent:执行式AI自动化测试"这一核心主题。 一、引言&#xff1…...

别再只用扫码枪了!用LabVIEW+OpenCV打造你的条形码/二维码混合识别系统

工业级视觉识别系统实战:用LabVIEWOpenCV替代传统扫码枪 在自动化产线和智能仓储场景中,扫码设备如同神经末梢般重要。但传统扫码枪的局限性日益凸显——固定安装方式难以适应柔性生产需求,高精度型号动辄上万元的采购成本让中小企业望而却步…...

百度文库助手:三步免费下载文库文档的终极指南

百度文库助手:三步免费下载文库文档的终极指南 【免费下载链接】baidu-wenku fetch the document for free 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wenku 还在为百度文库的下载限制而烦恼吗?无论是学生需要整理学习资料,…...

2025届毕业生推荐的十大AI论文助手实测分析

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 从语言风格与结构这两方面入手,才好降低知网 AI 的检测率。第一,要避…...

RK3588实战:Qt+OpenCV环境搭建与USB摄像头实时采集全攻略

1. 环境准备:从零搭建RK3588开发环境 第一次拿到RK3588开发板时,我和大多数开发者一样兴奋又忐忑。这款六核ARM处理器在嵌入式视觉领域确实是个狠角色,但要让它的性能真正发挥出来,环境搭建就是第一道门槛。这里分享我反复验证过的…...

DDrawCompat终极指南:5分钟让Windows老游戏重获新生

DDrawCompat终极指南:5分钟让Windows老游戏重获新生 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/dd/DDrawCom…...