88 lines
2.8 KiB
JavaScript
88 lines
2.8 KiB
JavaScript
/*
|
||
Сервис интеграции ПП Парус 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;
|