Способ добавления к файлу, сохраняя размер файла постоянным - PullRequest
0 голосов
/ 14 мая 2018

Я ищу способ записи логов из NodeJS в файл. Я использую опцию fs.appendFile. Есть ли способ продолжить добавление в файл, сохраняя постоянный размер файла - например, если файл превышает 5 МБ и появляется новая строка, удалите самую старую строку, чтобы разместить новую строку - вроде как в скользящая основа?

1 Ответ

0 голосов
/ 14 мая 2018

Если вы открыты для использования библиотеки для ведения журнала вместо appendfile.Вы можете использовать winston с Ежедневным поворотом файла транспорта , где вы можете ограничить размер файла на 5MB или на количество дней или на оба.

Я бы предложил заархивировать логи и хранить их в течение нескольких дней / недель, а также настроить задачу cron или что-то, что удаляло старые файлы.Если вы действительно хотите удалить все журналы, вы можете удалить их при повороте

transport.on('rotate', function(oldFilename, newFilename) {
    fs.unlinkSync('<log-file-name>')
  });

Обычно ротация журналов обрабатывается операционной системой с использованием чего-то вроде logrotate

...