共享Winston实例,但使用标签

时间:2019-05-21 19:00:01

标签: node.js logging winston

我正试图设置Winston,以避免创建多个记录器,我的想法是在名为app.js的文件中配置winston,然后在应用程序周围调用winston设置用于记录的标签。

这是记录器文件:

import winston, { format, transports } from 'winston';
const { combine, timestamp, printf } = format;

winston.configure({
  level: 'debug',
  format: combine(
    format.colorize(),
    timestamp(),
    printf(({ level, message, label, timestamp }) => {
      return `${timestamp} [${label}] ${level}: ${message}`;
    })
  ),
  transports: [
    new transports.File({
      filename: 'error.log',
      level: 'error'
    }),
    new transports.Console()
  ]
});

然后只需调用:

import winston from 'winston';

logger.info(`my-log ${foo}`);

这种情况下的问题是我无法为记录器设置名称,唯一的方法是执行类似的操作

logger.info(`my-log ${foo}`, { label: 'my-label' });

但是我不会添加

  

{标签:'my-label'}

对每个logger.info()....您有更好的主意吗?

0 个答案:

没有答案