November 26, 2023
Colored console log
const fs = require('fs'); // Функция для чтения файла конфигурации function readConfigFile() { try { const configPath = 'config'; // Путь к файлу 'route_config.json' const routeConfigPath = `${configPath}/route_config.json`; // Проверка существования файла 'route_config.json' if (!fs.existsSync(routeConfigPath)) { console.error(`Файл ${routeConfigPath} не существует`); return null; } // Чтение данных из файла 'route_config.json' в формате UTF-8 const data = fs.readFileSync(routeConfigPath, 'utf8'); // Преобразование данных из JSON формата в объект const config = JSON.parse(data); // Проверка режима выполнения наличием аргумента командной строки '-c', // если аргумент присутствует, то используется следующий аргумент (process.argv[3]), // в противном случае устанавливается режим 'production'. const mode = process.argv[2] === '-c' ? process.argv[3] : 'production'; if (!config[mode]) { console.error(`Значение для режима ${mode} не определено в конфигурации`); return null; } // Получение пути к файлу конфигурации для указанного режима const configFile = config[mode]; // Путь к файлу конфигурации const configFilePath = `${configPath}/${configFile}`; // Чтение данных из файла конфигурации в формате UTF-8 // Проверка существования файла конфигурации if (!fs.existsSync(configFilePath)) { console.error(`Файл ${configFilePath} не существует`); return null; } return JSON.parse(fs.readFileSync(configFilePath, 'utf8')); } catch (err) { // Обработка ошибок при чтении или разборе файла конфигурации console.error(`Произошла ошибка при чтении файла конфигурации:`, err); return null; } } function coloredText(text) { const replacements = { red: '\x1b[31m', green: '\x1b[32m', blue: '\x1b[34m', reset: '\x1b[0m', }; let result = text.replace(/{{(.*?):(.*?)}}/g, (match, color, content) => { const replacement = replacements[color] || ''; return replacement + content + replacements.reset; }); return result; } function logConsole(message, errorPage) { const configData = readConfigFile(); if (configData && configData.logger) { const colorMessage = coloredText(message); const colorError = coloredText(errorPage); const logText = colorMessage + ' ' + colorError; console.log(logText); } } const code="500"; // Вызов функции для вывода лога в консоль в конце скрипта logConsole("Ошибка {{red:чтения}} файла конфигурации", `{{green:${code}}}`);