Я обнаружил следующее определение логгера:
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"}
Интересно, что не так с этим определением и как избежать удвоения?