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}}}`);