Способ добавления к файлу, сохраняя размер файла постоянным

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам