gpt4 book ai didi

javascript - Winston 3.0 为控制台上的整个输出着色

转载 作者:搜寻专家 更新时间:2023-10-31 23:50:39 25 4
gpt4 key购买 nike

我正在开发一个 Node.js 应用程序,使用 babel-cli作为 ES6 转译器,我正在使用 Winston 3.0作为我的日志记录服务。

问题:

我希望 winston 记录器的消息的整个输出都以彩色显示,不仅是标签和消息,还有时间戳。我知道,在 Winston 2.x 中,这在某些方面是可行的(虽然不知道如何实现)。

我已经尝试过不同的 NPM 包,例如 winston colorwinston-console-formatter , 但它们似乎不起作用。

我定义了我的记录器如下:

    import winston from 'winston'

let alignColorsAndTime = winston.format.combine(
winston.format.colorize({
all:true
}),
winston.format.label({
label:'[LOGGER]'
}),
winston.format.timestamp({
format:"YY-MM-DD HH:MM:SS"
}),
winston.format.printf(
info => ` ${info.label} ${info.timestamp} ${info.level} : ${info.message}`
)
);

export const logger = winston.createLogger({
level: "debug",
transports: [
new (winston.transports.Console)({
format: alignColorsAndTime
})
],
});

输出仍然是这样的: Click for Image

虽然我宁愿让它看起来像这样: Click for Image

最佳答案

试试下面的代码。它将结合两种格式。它对我有用。


let alignColorsAndTime = winston.format.combine(
winston.format.colorize({
all:true
}),
winston.format.label({
label:'[LOGGER]'
}),
winston.format.timestamp({
format:"YY-MM-DD HH:mm:ss"
}),
winston.format.printf(
info => ` ${info.label} ${info.timestamp} ${info.level} : ${info.message}`
)
);

export const logger = winston.createLogger({
level: "debug",
transports: [
new (winston.transports.Console)({
format: winston.format.combine(winston.format.colorize(), alignColorsAndTime)
})
],
});

注意填充必须处理颜色。例如:


const padding= info.level.length <= 7?7:17; //padding differently if it has colour.
${info.level.padEnd(padding,' ')}

测试:

"winston": "^3.1.0"

关于javascript - Winston 3.0 为控制台上的整个输出着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51012150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com