Почему он печатает json и текст? - PullRequest
0 голосов
/ 04 мая 2020

Я обнаружил следующее определение логгера:

const { transports, createLogger, format } = require('winston');

const logger = createLogger({
  level: 'info',
  format: format.combine(
    format.timestamp(),
    format.json(),
  ),
  defaultMeta: { service: 'user-service' },
  transports: [
    new transports.Console(),
    new transports.File({ filename: 'error.log', level: 'error', timestamp: true }),
    new transports.File({ filename: 'combined.log', timestamp: true }),
  ],
});

if (process.env.NODE_ENV !== 'production') {
  logger.add(new transports.Console({ format: format.simple() }));
}

module.exports = logger;

Теперь, когда он используется так:

logger.info("Some text");

, он печатает два сообщения в консоли:

{"message":"Some text","level":"info","service":"user-service","timestamp":"2020-05-04T13:44:57.678Z"}
info: Some text {"service":"user-service","timestamp":"2020-05-04T13:44:57.678Z"}

Интересно, что не так с этим определением и как избежать удвоения?

...