浏览器花式打印console.log

2024-06-03 13:28

本文主要是介绍浏览器花式打印console.log,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

console是一个用于调试和记录信息的内置对象, 提供了多种方法,可以帮助开发者输出各种信息,进行调试和分析。

美化后的效果:

美化日志工具类

const isArray = function (obj) {return Object.prototype.toString.call(obj) === '[object Array]';
}const Logger = function () {
};Logger.typeColor = function (type) {let color = '';switch (type) {case 'primary':color = '#2d8cf0';break;case 'success':color = '#19be6b';break;case 'info':color = '#909399';break;case 'warn':color = '#ff9900';break;case 'error':color = '#f03f14';break;default:color = '#35495E';break;}return color;
}Logger.print = function (type = 'default', text) {if (typeof text === 'object') {// 如果是对象则调用打印对象方式isArray(text) ? console.table(text) : console.dir(text);return;}console.log(`%c ${text} `,`border: 1px solid ${Logger.typeColor(type)};padding: 2px; border-radius: 4px;color: ${Logger.typeColor(type)};`);
}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; 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');
}Logger.prettyPrimary = function (title, ...text) {text.forEach((t) => this.pretty('primary', title, t));
}Logger.prettySuccess = function (title, ...text) {text.forEach((t) => this.pretty('success', title, t));
}Logger.prettyWarn = function (title, ...text) {text.forEach((t) => this.pretty('warn', title, t));
}Logger.prettyError = function (title, ...text) {text.forEach((t) => this.pretty('error', title, t));
}Logger.prettyInfo = function (title, ...text) {text.forEach((t) => this.pretty('info', title, t));
}/*** 打印图片* @param url 图片地址* @param scale 图片缩放比例*/
Logger.printPic = function (url, scale = 1) {const img = new Image();img.crossOrigin = 'anonymous';img.onload = () => {const c = document.createElement('canvas');const ctx = c.getContext('2d');if (ctx) {c.width = img.width;c.height = img.height;ctx.fillStyle = 'red';ctx.fillRect(0, 0, c.width, c.height);ctx.drawImage(img, 0, 0);const dataUri = c.toDataURL('image/png');console.log(`%c sup?`,`font-size: 1px;padding: ${Math.floor((img.height * scale) / 2)}px ${Math.floor((img.width * scale) / 2)}px;background-image: url(${dataUri});background-repeat: no-repeat;background-size: ${img.width * scale}px ${img.height * scale}px;color: transparent;`);}};img.src = url;
}export default Logger;

Vue2中的使用

main.js

// 引入prettyLog.js
import Logger from "./utils/prettyLog";
// 将 Logger 挂载到 Vue 原型上
Vue.prototype.$logger = Logger;

index.vue

<template><div><div align="center"><div class="typing">欢迎使用木芒果有限公司后台管理系统</div></div></div>
</template><script>export default {name: "Index",data() {return {}},created() {//打印标准日志this.$logger.prettyPrimary("欢迎使用!", "木芒果有限公司后台管理系统")//打印信息日志this.$logger.prettyInfo("欢迎使用!", "木芒果有限公司后台管理系统")//打印成功日志this.$logger.prettySuccess("欢迎使用!", "木芒果有限公司后台管理系统")//打印错误日志this.$logger.prettyError("欢迎使用!", "木芒果有限公司后台管理系统")//打印警告日志this.$logger.prettyWarn("欢迎使用!", "木芒果有限公司后台管理系统")//打印带图片的日志this.$logger.printPic("https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F0514%2Fd0ea93ebj00sdgx56001xd200u000gtg00hz00a2.jpg&thumbnail=660x2147483647&quality=80&type=jpg")}
}
</script><style scoped>
</style>

Vue3中的使用

main.js

import Logger from "@/utils/prettyLog";
// 将 Logger 绑定到 window 对象上
window.logger = Logger;

index.vue

<template><div><div align="center"><div class="typing">欢迎使用木芒果有限公司后台管理系统</div></div></div>
</template><script setup>
onMounted(() => {//打印标准日志window.logger.prettyPrimary("欢迎使用!", "木芒果有限公司后台管理系统")//打印信息日志window.logger.prettyInfo("欢迎使用!", "木芒果有限公司后台管理系统")//打印成功日志window.logger.prettySuccess("欢迎使用!", "木芒果有限公司后台管理系统")//打印错误日志window.logger.prettyError("欢迎使用!", "木芒果有限公司后台管理系统")//打印警告日志window.logger.prettyWarn("欢迎使用!", "木芒果有限公司后台管理系统")//打印带图片的日志window.logger.printPic("https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F0514%2Fd0ea93ebj00sdgx56001xd200u000gtg00hz00a2.jpg&thumbnail=660x2147483647&quality=80&type=jpg")
});
</script>

这篇关于浏览器花式打印console.log的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

使用@Slf4j注解,log.info()无法使用问题

《使用@Slf4j注解,log.info()无法使用问题》在使用Lombok的@Slf4j注解打印日志时遇到问题,通过降低Lombok版本(从1.18.x降至1.16.10)解决了问题... 目录@Slf4androidj注解,log.info()无法使用问题最后解决总结@Slf4j注解,log.info(

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

zeroclipboard 粘贴板的应用示例, 兼容 Chrome、IE等多浏览器

zeroclipboard单个复制按钮和多个复制按钮的实现方法 最近网站改版想让复制代码功能在多个浏览器上都可以实现,最近看网上不少说我们的代码复制功能不好用的,我们最近将会增加代码高亮等功能,希望大家多多支持我们 zeroclipboard是一个跨浏览器的库类 它利用 Flash 进行复制,所以只要浏览器装有 Flash 就可以运行,而且比 IE 的

微软正式推出 Spartan 斯巴达浏览器

作为用于替代 IE 浏览器的下一代继任者,微软的 Project Spartan 斯巴达浏览器可算是吊足了玩家们的胃口!如今,在最新的 Windows 10 Build 10049 版本起,它终于正式登场了。 斯巴达浏览器搭载了全新的渲染引擎、新的用户界面并集成了 Cortana 语音助手。功能上新增了稍后阅读列表、阅读视图、F12开发者工具、支持网页注释 (手写涂鸦),可以保存到 O

PC与android平板通过浏览器监控Verybot的视频

下面这个视频是PC与android平板通过浏览器监控Verybot的视频:           http://v.youku.com/v_show/id_XNjYzNzYyMTIw.html

ImportError: cannot import name ‘print_log‘ from ‘logging‘

mmcv升级到2.+后删除了很多 解决 查FAQ文档,找到 添加到mmcv.utils下即可

DAY16:什么是慢查询,导致的原因,优化方法 | undo log、redo log、binlog的用处 | MySQL有哪些锁

目录 什么是慢查询,导致的原因,优化方法 undo log、redo log、binlog的用处  MySQL有哪些锁   什么是慢查询,导致的原因,优化方法 数据库查询的执行时间超过指定的超时时间时,就被称为慢查询。 导致的原因: 查询语句比较复杂:查询涉及多个表,包含复杂的连接和子查询,可能导致执行时间较长。查询数据量大:当查询的数据量庞大时,即使查询本身并不复杂,也可能导致

多数据源的事务处理总是打印很多无用的log日志

之前做了一个项目,需要用到多数据源以及事务处理,在使用事务处理,服务器总是打印很多关于事务处理的log日志(com.atomikos.logging.Slf4jLogger),但是我们根本不会用到这些log日志,反而使得查询一些有用的log日志变得困难。那要如何屏蔽这些log日志呢? 之前的项目是提高项目打印log日志的级别,后来觉得这样治标不治本。 现在有一个更好的方法: 我使用的是log

centos7 安装rocketmq4.7.0以及RocketMQ-Console-Ng控制台

一、前置工作 1.1安装jdk8 https://blog.csdn.net/pang_ping/article/details/80570011 1.2安装maven https://www.cnblogs.com/116970u/p/11211963.html 1.3安装git https://blog.csdn.net/xwj1992930/article/details/964

fastreport打印trichedit分页问题的解决

用fastreport来打印richedit里面的内容。刚开始放一个frxrichview组件到报表上,然后在 var str: TMemoryStream; begin    begin      str:= TMemoryStream.Create;      CurrRichRecord.richedit.Lines.SaveToStream(str);      str.Posit