November 24, 2023
Вывод логов, если позволяют текущие настройки скрипта
Ранее было описано как запускать скрипт с различными вариантами настроек файла конфигурации скрипта из файлов JSON.
Теперь мы будем выводить логи, только в том случае если есть соответствующие настройки в конфиге.
const fs = require('fs');
// Функция для чтения файла конфигурации
// Определение функции для чтения файла конфигурации
function readConfigFile() {
try {
// Чтение данных из файла 'route_config.json' в формате UTF-8
const data = fs.readFileSync('route_config.json', 'utf8');
// Преобразование данных из JSON формата в объект
const config = JSON.parse(data);
// Проверка режима выполнения наличием аргумента командной строки '-c',
// если аргумент присутствует, то используется следующий аргумент (process.argv[3]),
// в противном случае устанавливается режим 'production'.
const mode = process.argv[2] === '-c' ? process.argv[3] : 'production';
// Получение пути к файлу конфигурации для указанного режима
const configFile = config[mode];
// Чтение данных из файла конфигурации в формате UTF-8
return JSON.parse(fs.readFileSync(configFile, 'utf8'));
} catch (err) {
// Обработка ошибок при чтении или разборе файла конфигурации
console.error(`Произошла ошибка при чтении файла конфигурации:`, err);
// Возврат значения null в случае ошибки
return null;
}
}
// Функция для вывода лога в консоль
// Определение функции для логирования сообщения
function logMessage(message) {
// Получение данных из файла конфигурации
const configData = readConfigFile();
// Проверка наличия данных о логгере в конфигурации
//Проверка наличия данных о логгере в объекте configData.
//Проверяется наличие объекта configData и наличие свойства logger в этом объекте.
if (configData && configData.logger) {
// Если логгер указан в конфигурации, выводим сообщение в консоль с префиксом [LOG]
console.log(`[LOG] ${message}`);
}
}
// Вызов функции для вывода лога в консоль в конце скрипта
logMessage("Тестовый лог в конце скрипта");D:\node\mode>node app.js [LOG] Тестовый лог в конце скрипта D:\node\mode>node app.js -c debug D:\node\mode>