Прежде всего, вы используете stati c имя файла в качестве параметра filename
функции createStream
и выполняете некоторые вычисления на дату, чтобы получить имя полученного файла.
Обратите внимание, что вычисление даты происходит только один раз перед вызовом функции createStream
. Чтобы выполнять вычисления по дате, происходящей при каждом повороте, вы должны использовать функцию генератора имени файла . Подробности можно найти в readme .
Более того, похоже, что в этой строке есть ошибка: path.normalize
принимает только один параметр.
let log_file_name = path.normalize(__dirname + log_directory + log_date, 'access.log');
Last , чтобы указать каталог для ведения журнала, должно быть достаточно опции path .
Если я правильно аргументировал ваши намерения, следующий код должен решить все проблемы
const rfs = require("rotating-file-stream");
function formatDate(d) {
var month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear(),
hour = d.getHours();
if (month.length < 2)
month = '0' + month;
if (day.length < 2)
day = '0' + day;
if (hour.length < 2)
hour = '0' + hour;
return [year, month, day, hour].join('-');
}
function log_file_name(time, index) {
if (!time) return 'access.log';
return [formatDate(time), index, 'access.log'].join('-');
}
let accessLogStream = rfs.createStream(log_file_name, {
size: "300M",
interval: "1d",
path: '/../logs/'
});