88 lines
2.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Сервис интеграции ПП Парус 8 с WEB API
Модуль ядра: протоколирование работы
*/
//------------
// Тело модуля
//------------
//Тип сообщения протокола - ошибка
const LOGGER_MESSAGE_TYPE_ERROR = "ERROR";
//Тип сообщения протокола - предупреждение
const LOGGER_MESSAGE_TYPE_WARN = "WARN";
//Тип сообщения протокола - информация
const LOGGER_MESSAGE_TYPE_INFO = "INFO";
//Сообщение протокола
class LoggerMessage {
//Конструктор класса
constructor(type, message) {
this.type = type;
this.message = message;
}
}
//Класс управления протоколом
class Logger {
//Конструктор класса
constructor() {}
//Протоколирование ошибки
error(msg) {
this.log(new LoggerMessage(LOGGER_MESSAGE_TYPE_ERROR, msg));
}
//Протоколирование предупреждения
warn(msg) {
this.log(new LoggerMessage(LOGGER_MESSAGE_TYPE_WARN, msg));
}
//Протоколирование информации
info(msg) {
this.log(new LoggerMessage(LOGGER_MESSAGE_TYPE_INFO, msg));
}
//Протоколирование
log(loggerMessage) {
let message = "";
let prefix = "LOG MESSAGE";
let colorPattern = "";
//Конструируем сообщение
if (loggerMessage instanceof LoggerMessage) {
switch (loggerMessage.type) {
case LOGGER_MESSAGE_TYPE_ERROR: {
prefix = "ERROR";
colorPattern = "\x1b[31m%s\x1b[0m%s";
break;
}
case LOGGER_MESSAGE_TYPE_WARN: {
prefix = "WARNING";
colorPattern = "\x1b[33m%s\x1b[0m%s";
break;
}
case LOGGER_MESSAGE_TYPE_INFO: {
prefix = "INFORMATION";
colorPattern = "\x1b[32m%s\x1b[0m%s";
break;
}
default:
break;
}
message = loggerMessage.message;
} else {
message = loggerMessage;
}
//Выдаём сообщение
console.log(colorPattern, prefix + ": ", message);
}
}
//-----------------
// Интерфейс модуля
//-----------------
exports.LOGGER_MESSAGE_TYPE_ERROR = LOGGER_MESSAGE_TYPE_ERROR;
exports.LOGGER_MESSAGE_TYPE_WARN = LOGGER_MESSAGE_TYPE_WARN;
exports.LOGGER_MESSAGE_TYPE_INFO = LOGGER_MESSAGE_TYPE_INFO;
exports.LoggerMessage = LoggerMessage;
exports.Logger = Logger;