You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Winston 3日志库支持使用的合法颜色列表有哪些?

Winston 3 日志库合法自定义颜色说明

报错原因

Winston 3的颜色功能依赖底层logform包调用的colors.js预设色值,仅支持内置的固定颜色名,不支持直接传入十六进制色值、brown/pink这类非预设的自定义颜色名,你遇到的TypeError: colors[Colorizer.allColors[lookup]] is not a function就是使用了不在允许列表内的颜色值导致的。

官方允许的完整颜色列表

所有可直接在winston.addColors中使用的合法值如下:

基础前景色

  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white
  • gray
  • grey

高亮前景色

  • brightRed
  • brightGreen
  • brightYellow
  • brightBlue
  • brightMagenta
  • brightCyan
  • brightWhite

背景色

  • bgBlack
  • bgRed
  • bgGreen
  • bgYellow
  • bgBlue
  • bgMagenta
  • bgCyan
  • bgWhite
  • bgBrightRed
  • bgBrightGreen
  • bgBrightYellow
  • bgBrightBlue
  • bgBrightMagenta
  • bgBrightCyan
  • bgBrightWhite

样式修饰

  • bold
  • dim
  • italic
  • underline
  • inverse
  • hidden
  • strikethrough

自定义十六进制/特殊颜色方案

如果需要使用十六进制色值、pink/brown这类自定义颜色,可以不依赖Winston内置的colorize格式,自己通过printf格式配合chalk这类颜色库实现,示例如下:

const chalk = require('chalk');
const winston = require('winston');

const customLogFormat = winston.format.printf(({ level, message, timestamp }) => {
  // 自定义颜色映射,支持任意chalk支持的色值
  const levelColorMap = {
    info: chalk.hex('#2E6E3E'),
    error: chalk.hex('#A52A2A'), // 对应brown
    warn: chalk.hex('#FFC0CB'), // 对应pink
    debug: chalk.cyan
  };
  return `${timestamp} ${levelColorMap[level](level)}: ${message}`;
});

const logger = winston.createLogger({
  format: winston.format.combine(
    winston.format.timestamp(),
    customLogFormat
  ),
  transports: [new winston.transports.Console()]
});

内容的提问来源于stack exchange,提问作者martinho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:36:05