欢迎光临
我们一直在努力

给 console 添加颜色

使用 %c 声明可以给 console 的输出添加 CSS 样式,日志太多的话,给不同种类的日志设置不同的样式,可以极大的提升阅读体验。

什么是 %c

%c: 标识将 CSS 样式应用于 %c 之后的 console 消息。

给 console 消息设置多个样式

可以给同一条 Console 消息设置多种颜色。

console.log(
  'Nothing here %cHi Cat %cHey Bear',  // Console Message
  'color: blue', 'color: red' // CSS Style
);

给其他 console 消息设置样式

这里有五种 console 类型的消息:

  • console.log
  • console.info
  • console.debug
  • console.warn
  • console.error

你可以自定义自己的日志样式,例如:

console.log('%cconsole.log', 'color: green;'); 
console.info('%cconsole.info', 'color: green;'); 
console.debug('%cconsole.debug', 'color: green;'); 
console.warn('%cconsole.warn', 'color: green;'); 
console.error('%cconsole.error', 'color: green;'); 

处理多种 CSS 样式

如果要输出的样式比较多,字符串会比较长,这里有一个小技巧, 生成一个 CSS Array ,通过 join(‘;’) 来合并成一个 CSS String。

例如:

// 1.将css样式传递给数组
const styles = [ 
  'color:green',
  'background:yellow',
  'font-size:30px',
  'border:1px solid red',
  'text-shadow:2px 2px black',
  'padding:10px',
]。join(';'); 
// 2.连接单个数组项并将它们连接成一个用分号分隔的字符串(;)
// 3.传递样式变量
console.log('%cHello There',styles);
// or
console.log('%c%s', styles, 'Some Important Message Here');

在 Node.js 中设置 console 消息样式

在 node.js 环境,你可以使用 Color Reference 来设置样式。例如:

// Cyan
console.log('\x1b[36m%s\x1b[0m', 'I am cyan');
// Yellow
console.log('\x1b[33m%s\x1b[0m', 'yellow' );

注意:\x1b[36m%s\x1b[0m,36m为开始颜色,0m为重置,若不重置,此后的颜色则全为36m。因此必须要有一个“闭合”,才能控制颜色显示。

Color Reference

Reset = "\x1b[0m"      //重置
Bright = "\x1b[1m"     // 加粗加宽 
Dim = "\x1b[2m"        // 加宽
Underscore = "\x1b[4m" // 下划线
Blink = "\x1b[5m"      // 阴影
Reverse = "\x1b[7m"    // 反转
Hidden = "\x1b[8m"     // 隐藏

字体颜色
FgBlack = "\x1b[30m"
FgRed = "\x1b[31m"
FgGreen = "\x1b[32m"
FgYellow = "\x1b[33m"
FgBlue = "\x1b[34m"
FgMagenta = "\x1b[35m"  // 洋红
FgCyan = "\x1b[36m"     // 兰绿
FgWhite = "\x1b[37m"

背景颜色
BgBlack = "\x1b[40m"
BgRed = "\x1b[41m"
BgGreen = "\x1b[42m"
BgYellow = "\x1b[43m"
BgBlue = "\x1b[44m"
BgMagenta = "\x1b[45m"
BgCyan = "\x1b[46m"
BgWhite = "\x1b[47m"
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    <title>Ding Jianlong Html</title>
    <style>
 
    </style>
</head>
<body>
	<h2>请在开发者工具查看console</h2>    
 
<script>
 
	//基本用法
	console.log('最常见用法\n换行');
	console.error('输出错误信息 会以红色显示');
	console.warn('打印警告信息 会以黄色显示');
	console.info('打印一般信息');
	console.clear();//清空上面的console显示
 
 
 
	//进阶用法
	//console.assert(bool,”info”) 如果bool为false 打印出info 否则不打印
	console.assert(false,'判断为false才显示的信息');
	//传入的对象或数组以表格方式显示
	console.table([['中国','美国'],['好']]);
	//打印 调用链 fn2()调用fn1(),fn1()调用fn()
	function fn(){ console.trace();	}
	function fn1(){ fn(); }
	function fn2(){ fn1(); }
	fn2();
	//格式化输出
	/*
		console.log支持的格式标志有:
		%s       占位符
		%d 或 %i    整数
		%f       浮点数
		%o%O     object对象
		%c       css样式
	*/
	console.log('%d + %d = %d',1,2,3);
	//%o%O打印dom节点时就不一样
	console.log('%o',document.body);
	console.log('%O',document.body);
	// %c 后面的内容,增加css样式
	//附:console.log输出的超链接会被自动识别并加上灰色字体颜色和下划线的样式,而这个无法用%c覆盖
	console.log('123 %c 456','font-size:36px;color:red;');
	console.log('123 %c 4 http://www.google.com 56 %c 789','font-size:20px;color:#ff8400;','font-size:12px;color:#000');
	//利用css样式加载图片
	//没法直接设置width和height样式,line-height图片高度,再调padding
	console.log('%c ','background-image:url("http://iyeslogo.orbrand.com/150902Google/005.gif");background-size:120% 120%;background-repeat:no-repeat;background-position:center center;line-height:60px;padding:30px 120px;');
 
 
 
	//高级用法
	//计时,单位毫秒
	console.time();
	for(var i=0;i<100000;i++){
		var j=i*i;
	}
	console.timeEnd();
	//统计代码或函数被调用了多少次
	var fn_ = function(){ console.count('hello world'); }
	for(var i=0;i<5;i++){
		fn_();
	}
	//查看内存使用情况,是属性,不带括号
	//console.memory;
	//在浏览器开发者工具中使用
	//分组输出,可嵌套
	console.group('分组1');
	console.log('语文');
	console.log('数学');
		console.group('其他科目');
		console.log('化学');
		console.log('地理');
		console.log('历史');
		console.groupEnd('其他科目');
	console.groupEnd('分组1');
 
 
</script>
</body>
</html>
赞(0)
版权归原作者所有,如有侵权请告知。达维营-前端网 » 给 console 添加颜色

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址