Приостановите/остановите вращение файла с помощью rotating-file-stream

#node.js #file #logging #node-streams #log-rotation

Вопрос:

Обычно вращающиеся файлы используются для обработки сообщений журнала, чтобы управлять размерами файлов и содержащимися в них сообщениями журнала. Однако меня интересует несколько иной вариант использования: входящие показания датчиков должны сохраняться в файл каждый день. А это напомнило мне о вращающихся файлах журналов, я решил пойти по этому пути и использовать rotating-file-stream модуль. Базовая реализация работает по желанию, и я могу записывать входящие значения в файлы данных csv:

 "use strict";

const rfs = require("rotating-file-stream");

const CSV_BASE_NAME = "debug_data.csv";
const ROTATE_CSV_INTERVAL = "10s";
const DATA_INTERVAL_MS = 2000;

const stream = rfs.createStream(CSV_BASE_NAME, {
  interval: ROTATE_CSV_INTERVAL,
});

const writeData = () => {
    stream.write("sample data"   "n");
}

setInterval(writeData, DATA_INTERVAL_MS);
 

Однако запись данных может быть включена или отключена пользователем. Поэтому данные не должны записываться в поток целевого файла, если запись данных отключена:

 "use strict";

const rfs = require("rotating-file-stream");

const CSV_BASE_NAME = "debug_data.csv";
const ROTATE_CSV_INTERVAL = "10s";
const DATA_INTERVAL_MS = 2000;

const ENABLE_RECORDING = false;

const stream = rfs.createStream(CSV_BASE_NAME, {
  interval: ROTATE_CSV_INTERVAL,
});

const writeData = () => {
  if (ENABLE_RECORDING) {
    stream.write("sample data"   "n");
  }
};

setInterval(writeData, DATA_INTERVAL_MS);
 

Однако вращающийся поток файлов всегда генерируется, поскольку он обрабатывается rotating-file-stream модулем, не зная, что запись данных отключена или включена. csv-файлы генерируются в соответствии с указанным interval , которые не будут содержать данных, если запись данных отключена.

Есть ли способ приостановить/остановить вращение файлов, когда запись данных отключена, чтобы предотвратить создание пустых файлов?