LOADING

加载过慢请开启缓存 浏览器默认开启

让你的控制台变身彩虹乐园

2025/3/31 2025/7/27 笔记 美化 教程

📜 彩色日志使用指南:让控制台变身彩虹乐园 🎨


🌈 概述

彩色日志通过 ANSI 转义码 + 颜文字系统,为枯燥的控制台信息赋予情感表达能力。本文档以 Node.js 场景为例,演示如何打造可爱又实用的日志系统。


🎨 基础颜色代码表

颜色名称前景色代码背景色代码示例
黑色\x1b[30m\x1b[40m\x1b[30m◼ 暗夜模式启动◼\x1b[0m
红色\x1b[31m\x1b[41m\x1b[31m❤ 严重错误!\x1b[0m
绿色\x1b[32m\x1b[42m\x1b[32m✓ 编译成功~\x1b[0m
黄色\x1b[33m\x1b[43m\x1b[33m⚠ 缓存即将过期\x1b[0m
蓝色\x1b[34m\x1b[44m\x1b[34m🌊 正在连接数据库\x1b[0m
品红\x1b[35m\x1b[45m\x1b[35m🌸 用户登录成功\x1b[0m
青色\x1b[36m\x1b[46m\x1b[36m💎 发现新版本\x1b[0m
白色\x1b[37m\x1b[47m\x1b[37m☁ 进入待机状态\x1b[0m

重置样式\x1b[0m(必须放在颜色代码末尾)


高级样式组合

1. 混合样式语法

// 格式:\x1b[样式代码;颜色代码m
console.log(`\x1b[1;4;36m📘\x1b[0m 正在被少女分析中...`);

输出效果:加粗 + 下划线 + 青色文字

2. 常用样式代码

样式名称代码可爱应用场景
加粗1\x1b[1;35m🌟重要通知\x1b[0m
下划线4\x1b[4;33m⚠警告!\x1b[0m
闪烁5\x1b[5;31m❗紧急事件\x1b[0m
反色7\x1b[7;32m✅操作成功\x1b[0m

😺 颜文字情感系统

1. 状态对应表

日志级别推荐颜文字应用示例
SUCCESS٩(ˊᗜˋ*)و (≧ω≦)ゞ\x1b[32m٩(ˊᗜˋ*)و 缓存清理完成!释放 ${size}MB 空间~\x1b[0m
INFOฅ^•ﻌ•^ฅ ( •̀ ω •́ )✧\x1b[36mฅ^•ﻌ•^ฅ 发现 ${count} 个待处理事项\x1b[0m
WARN(´•︵•\)(,,・﹏・,,)`\x1b[33m(´•︵•\) 配置文件版本过旧,建议更新\x1b[0m`
ERROR(;´༎ຶД༎ຶ)(つ Д`)`\x1b[41m(;´༎ຶД༎ຶ) 数据库连接失败!重试中…\x1b[0m`

2. 动态颜文字生成器

function getEmoji(level) {
  const emojis = {
    success: ["(^∇^)", "✧*。٩(ˊᗜˋ)و✧*。", "♪(^∇^*)"],
    error: ["(>_<)", "(T▽T)", "(πーπ)"],
  };
  return emojis[level][Math.floor(Math.random() * 3)];
}
// 使用示例
console.log(`${getEmoji("success")} 任务完成!`);

🚀 最佳实践

1. 日志分级配色方案

const LOG_COLORS = {
  debug: "\x1b[37m", // 灰色
  info: "\x1b[36m", // 青色
  success: "\x1b[1;32m", // 亮绿色
  warn: "\x1b[1;33m", // 亮黄色
  error: "\x1b[1;31m", // 亮红色
};

function cuteLog(level, message) {
  console.log(`${LOG_COLORS[level]}${getEmoji(level)} ${message}\x1b[0m`);
}

2. 动态进度条

function showProgress(percent) {
  const bar = `[${"▓".repeat(percent / 2)}${"░".repeat(50 - percent / 2)}]`;
  process.stdout.write(`\x1b[36m${bar} \x1b[35m${percent}%\x1b[0m\r`);
}

⚠️ 注意事项

  1. 终端兼容性检查

    // 检测是否支持颜色输出
    if (process.stdout.isTTY) {
      // 启用彩色日志
    } else {
      // 回退到普通日志
    }
  2. 颜色污染防护

    • 必须使用 \x1b[0m 重置样式
    • 避免嵌套超过 3 层颜色代码
    • 在长文本中每 80 字符插入重置代码
  3. 颜文字使用原则

    • 关键日志:每个消息配 1 个颜文字
    • 调试日志:每 5 条消息随机出现颜文字
    • 错误日志:固定使用悲伤系颜文字

🌟 高级技巧

彩虹文字特效

function rainbowText(text) {
  const colors = [31, 33, 32, 36, 34, 35]; // 红黄绿青蓝紫
  return (
    text
      .split("")
      .map((char, i) => `\x1b[${colors[i % colors.length]}m${char}`)
      .join("") + "\x1b[0m"
  );
}
// 使用示例
console.log(rainbowText("少女启动彩虹模式!"));