Winston: Разрешить настройку форматов для каждого транспорта в одном регистраторе

Созданный на 8 июл. 2018  ·  5Комментарии  ·  Источник: winstonjs/winston

В чем особенность?

У меня есть регистратор с консольным транспортом и другой транспорт, который идет в облачную службу ведения журнала. Для консоли я хочу добавлять к сообщениям метку времени и раскрашивать их. Для облачной службы ведения журнала мне не нужны временные метки, потому что служба предоставляет свои собственные, и мне тоже не нужны цвета.

Готовы ли вы реализовать эту функцию при нашей поддержке?

PR для этой функции уже отправлены: # 427 и # 422

Возможна ли уже настройка форматов для каждого транспорта, но я не видел объяснения этой возможности в README?

Самый полезный комментарий

Неважно, это действительно возможно, но в документации полностью отсутствует упоминание об этой функции.

const logger = winston.createLogger({
  transports: [
    new winston.transports.File({
      filename: 'error.log', level: 'error',
      format: winston.format.simple(),
    }),
    new winston.transports.File({
      filename: 'combined.log', level: 'debug',
      format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`),
    }),
  ],
});

logger.error('prefixed by the timestamp only in `combined.log`');

Все 5 Комментарий

Неважно, это действительно возможно, но в документации полностью отсутствует упоминание об этой функции.

const logger = winston.createLogger({
  transports: [
    new winston.transports.File({
      filename: 'error.log', level: 'error',
      format: winston.format.simple(),
    }),
    new winston.transports.File({
      filename: 'combined.log', level: 'debug',
      format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`),
    }),
  ],
});

logger.error('prefixed by the timestamp only in `combined.log`');

Обязательно добавьте в документы плз

@dandv Код printf в вашем комментарии не работает из коробки, после кода временной метки отсутствует закрывающая скобка.

Итак, эта строка ...

format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`),

... нужна такая закрывающая скобка

format: winston.format.printf(info => `${new Date().toISOString()}, ${info.message}`),

Спасибо за код и знания для настраиваемого форматирования! Очень признателен!

Неважно, это действительно возможно, но в документации полностью отсутствует упоминание об этой функции.

const logger = winston.createLogger({
  transports: [
    new winston.transports.File({
      filename: 'error.log', level: 'error',
      format: winston.format.simple(),
    }),
    new winston.transports.File({
      filename: 'combined.log', level: 'debug',
      format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`),
    }),
  ],
});

logger.error('prefixed by the timestamp only in `combined.log`');

@dandv а что, если у меня есть другой формат вне транспортов и внутри метода создания регистратора. Какой формат будет применяться?

Неважно, это действительно возможно, но в документации полностью отсутствует упоминание об этой функции.

const logger = winston.createLogger({
  transports: [
    new winston.transports.File({
      filename: 'error.log', level: 'error',
      format: winston.format.simple(),
    }),
    new winston.transports.File({
      filename: 'combined.log', level: 'debug',
      format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`),
    }),
  ],
});

logger.error('prefixed by the timestamp only in `combined.log`');

@dandv а что, если у меня есть другой формат вне транспортов и внутри метода создания регистратора. Какой формат будет применяться?

Тот, что внутри.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги