Winston Logger: путь должен быть строкой - PullRequest
0 голосов
/ 29 июня 2018

Я использую Winston в своем проекте Node.js для ведения журнала. Я хочу построить несколько регистраторов с похожими настройками, поэтому, чтобы быть СУХИМ, я пытаюсь построить транспорты с функцией:

function makeTransport(dir, logLevel) {
  return new winston.transports.DailyRotateFile({
    filename: `${LOG_DIR}/${dir}/${logLevel}-%DATE%.log`,
    datePattern: 'YYYY-MM-DD-HH',
    level: logLevel,
    format: myFormat
  });
}

Но когда я запускаю это, он выдает ошибку

TypeError: Path must be a string. Received undefined

Я проверил весь мой синтаксис. Ошибка определенно что-то с транспортным конструктором. Есть ли способ, которым я могу сделать то, что я пытаюсь сделать, не используя определения регистратора копирования всего кода?

1 Ответ

0 голосов
/ 29 июня 2018

Обновление: я нашел обходной путь, который работает

function makeTransport(dir, logLevel) {
  let def = {
    filename: `${LOG_DIR}/${dir}/${logLevel}-%DATE%.log`,
    datePattern: 'YYYY-MM-DD-HH',
    level: logLevel,
    format: myFormat
  };
  return new winston.transports.DailyRotateFile(def);
}

Я все еще не уверен, почему оригинальный способ не работает, но это примерно столько же кода.

...