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>