隐藏Winston日志中的日志级别

时间:2017-09-20 09:48:12

标签: javascript logging winston

我正在使用Winston.js在Javascript应用程序中记录一些信息。问题是日志级别应隐藏在打印日志中。

而不是像这样:

info: some pretty and cool log message

我需要这样的事情:

some pretty and cool log message

我看一下Winston main page,但我没找到任何东西。

2 个答案:

答案 0 :(得分:0)

在图书馆的单元测试中,我找到了这个: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的日志,而没有任何其他信息。

希望它有所帮助。

答案 1 :(得分:0)

您需要使用自定义格式:

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');