在 Winston 日志中隐藏日志级别
Hiding log-level in Winston logs
我正在使用 Winston.js 在 Javascript 应用程序中记录一些信息。问题是日志级别应该隐藏在打印的日志中。
而不是像这样:
info: some pretty and cool log message
我需要这样的东西:
some pretty and cool log message
我查看了 Winston main page,但我没有找到任何东西。
拼凑库的单元测试,我找到了这个:Custom formatter。基本上,为日志级别声明一个 自定义格式化程序 ,您基本上可以对将写入日志的文本做任何您想做的事情。
只写日志消息,不写任何日志级别信息,按以下方式重新定义日志的格式化程序。
var winston = require('winston');
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)({
level: 'info',
pattern: /info\:/,
formatter: function(params) {
return undefined !== params.message ? params.message : "";
}
})
]
});
上面的例子定义了一个控制台logger
,它只打印 message
级别 info
的日志,没有任何附加信息。
希望对您有所帮助。
您需要使用自定义格式:
const { createLogger, format, transports } = require('winston');
const winston = createLogger({
level: 'info',
transports: [
new transports.Console({
level: 'info',
format: format.combine(
format.colorize(),
format.printf(
(info) => {
// return `${info.level}: ${info.message}`;
return `${info.message}`;
})
)
}),
]
});
winston.info('Hello world');
winston.log('info', 'Hello world 2');
//or you can use wrapper to easy replace console.log
const logger = {
log:(msg) => {
winston.info(msg);
}
}
logger.log('Hello world 3');
我正在使用 Winston.js 在 Javascript 应用程序中记录一些信息。问题是日志级别应该隐藏在打印的日志中。
而不是像这样:
info: some pretty and cool log message
我需要这样的东西:
some pretty and cool log message
我查看了 Winston main page,但我没有找到任何东西。
拼凑库的单元测试,我找到了这个:Custom formatter。基本上,为日志级别声明一个 自定义格式化程序 ,您基本上可以对将写入日志的文本做任何您想做的事情。
只写日志消息,不写任何日志级别信息,按以下方式重新定义日志的格式化程序。
var winston = require('winston');
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)({
level: 'info',
pattern: /info\:/,
formatter: function(params) {
return undefined !== params.message ? params.message : "";
}
})
]
});
上面的例子定义了一个控制台logger
,它只打印 message
级别 info
的日志,没有任何附加信息。
希望对您有所帮助。
您需要使用自定义格式:
const { createLogger, format, transports } = require('winston');
const winston = createLogger({
level: 'info',
transports: [
new transports.Console({
level: 'info',
format: format.combine(
format.colorize(),
format.printf(
(info) => {
// return `${info.level}: ${info.message}`;
return `${info.message}`;
})
)
}),
]
});
winston.info('Hello world');
winston.log('info', 'Hello world 2');
//or you can use wrapper to easy replace console.log
const logger = {
log:(msg) => {
winston.info(msg);
}
}
logger.log('Hello world 3');