Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 14.06.2022, 20:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

NovichokJS,
так логичнее ...
const createLogger = () => {
    let type = '';
    let message = '';
    let dateTime = '';
    let arr = [];

    function warn(messageOfWarn) {
        type = 'warn';
        message = messageOfWarn;
        dateTime = new Date();
        arr.push({type, message, dateTime});
    }

    function error(messageOfError) {
        type = 'error';
        message = messageOfError;
        dateTime = new Date();
        arr.push({type, message, dateTime});
    }

    function log(messageOfLog) {
        type = 'log';
        message = messageOfLog;
         dateTime = new Date();
        arr.push({type, message, dateTime});
    }

    function getRecords(type) {
        return arr.filter(({type : e}) => e == type);
    }
    return {
        warn,
        error,
        log,
        getRecords,
    }
};

// examples
const logger1 = createLogger();
logger1.log('User logged in');
logger1.warn('User is tring to ented restricted page');
logger1.log('User logged out');
logger1.error('Unexpected error on the site');
console.log(logger1.getRecords('log')); // ===> [{ message: 'User logged out', type: 'log', dateTime: Date }, { message: 'User logged in', type: 'log', dateTime: Date }]
Ответить с цитированием
  #12 (permalink)  
Старый 15.06.2022, 11:00
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Сообщение от рони
так логичнее ...
Еще логичнее классом все это оформить.

class Logger {
    arr = [];
	
	add (type, message) {
        this.arr.push({type, message, dateTime: new Date()});
	}
    warn(message) {this.add ('warn', message)}
 
    error(message) {this.add ('error', message)}
 
    log(message) {this.add ('log', message)}
 
    getRecords(stype) {
        return this.arr.filter(({type}) => stype == type);
    }
};
 
// examples
const logger1 = new Logger();
logger1.log('User logged in');
logger1.warn('User is tring to ented restricted page');
logger1.log('User logged out');
logger1.error('Unexpected error on the site');

console.log(logger1.getRecords('log')); // ===> [{ message: 'User logged out', type: 'log', dateTime: Date }, { message: 'User logged in', type: 'log', dateTime: Date }]

Последний раз редактировалось voraa, 15.06.2022 в 11:06.
Ответить с цитированием
  #13 (permalink)  
Старый 15.06.2022, 11:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

voraa,
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести сообщение о копировании текста Igorsrt Элементы интерфейса 4 27.01.2019 12:06
Как приплюсовать 3 inputa и вывести, сообщение. ainur777 Элементы интерфейса 2 10.11.2013 15:33
как вывести сообщение только когда селект не выбран imediasun1 Элементы интерфейса 5 11.05.2013 17:40
Вывести сообщение в другой фрейм (чат) Гробовщик AJAX и COMET 0 29.03.2013 06:05
Вывести сообщение по клику по кнопке формы Sergios Элементы интерфейса 2 30.01.2012 15:35