作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在开发一个 Node.js 应用程序,使用 babel-cli作为 ES6 转译器,我正在使用 Winston 3.0作为我的日志记录服务。
我希望 winston 记录器的消息的整个输出都以彩色显示,不仅是标签和消息,还有时间戳。我知道,在 Winston 2.x 中,这在某些方面是可行的(虽然不知道如何实现)。
我已经尝试过不同的 NPM 包,例如 winston color和 winston-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
})
],
});
最佳答案
试试下面的代码。它将结合两种格式。它对我有用。
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/
我正在开发一个在 VS 社区 2017 中开发并使用 IIS Express 10 的 .net Core MVVC 项目,我遇到了 TempData 无法在我开发的 3 台计算机中的两台上运行的问题
我是一名优秀的程序员,十分优秀!