Winston: если каталог журналов не существует, он выдаст ex вместо создания каталога

Созданный на 11 мар. 2015  ·  9Комментарии  ·  Источник: winstonjs/winston

var transports = [];
transports.push(new winston.transports.DailyRotateFile({
  name: 'file',
  datePattern: '.yyyy-MM-ddTHH',
  filename: path.join(__dirname, "logs", "log_file.log")
}));

var logger = new winston.Logger({transports: transports});

logger.info("current scheduled_mt_task count");

Если подкаталог /logs не существует, он выдаст исключение, например can't open file logs/log_file.log20150213XXX ,

Я думаю, Winston должен автоматически создавать подкаталог, а не просить пользователей создать его вручную.

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

Я голосую за такой вариант. По умолчанию каталог журналов не должен создаваться, но если для параметра типа createDirectory задано значение true, было бы очень удобно, если бы Уинстон создал указанный каталог.

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

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

также по пр 581 и выпуску 511

Я голосую за такой вариант. По умолчанию каталог журналов не должен создаваться, но если для параметра типа createDirectory задано значение true, было бы очень удобно, если бы Уинстон создал указанный каталог.

+1

Согласитесь с @ambbell здесь. Потребитель winston должен убедиться, что его каталог журналов существует.

+1

Другие инструменты ведения журнала, такие как NLog для .NET и SLF4J для Java, могут создавать папки на лету. Кроме того, почему Winston терпит неудачу, если он не может вести журнал? Почему все приложение должно выходить из строя только из-за того, что оно не может регистрироваться?

@indexzero Ребята, примете ли вы пиар за предложение @PierLucGagnon ? О варианте createDirectory ? Я нахожу текущее поведение очень неудобным и (как упоминалось @ guillegr123) несовместимым с тем, как работают другие фреймворки, поэтому оно противоречит ожиданиям пользователей.

Я имею в виду, почему бы вам не сделать еще один шаг и не сказать, что его разработчики обязаны заранее создать ФАЙЛ журналирования?

Поскольку папки с именем / logs будут игнорироваться, если вы используете один из распространенных gitignores, исключение отсутствующей папки является распространенной проблемой, когда я развертываю свои приложения в новых средах. Надеюсь запрос на перенос будет принят

@indexzero Но почему? Когда вы говорите что-то вроде «Я думаю», вам нужно обосновать это, не так ли? Моя причина иметь эту опцию заключается в том, что обычно каталог журналов не находится под контролем версий и не будет создан при клонировании репо - бум, у вас возникает ошибка при попытке его запустить. Я даже не говорю об автоматически развертываемых средах.

Обходной путь: добавьте эту инструкцию перед объявлением транспорта:
fs.mkdir('./logs', (err) => { /* no-op */ })

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