Представлено описание сервиса логирования

Описание

Сервис логирования обеспечивает запись сообщений различного Ember-приложений уровня в базу данных.

При инициализации приложения данный сервис автоматически внедряется под именем logService на уровни:

  • component,
  • controller,
  • route,
  • view.

Включение и отключение сервиса

По умолчанию сервис выключен.

Для того, чтобы включить сервис, необходимо в конфигурационном файле ember-приложения задать настройку: config.APP.log.

module.exports = function(environment) {
    module.exports = function(environment) {
      var ENV = {
        ...
        APP: {
          ...
          log: {
            enabled: true,
            ...
          }
          ...
        }
        ...
    };

По умолчанию сервис логирования выключен (enabled=false). Разработчик может динамически включать данный сервис оператором:

logService.enabled = true;

Уровни логирования

Сервис логирования поддерживает шесть уровней логирования:

  • storeErrorMessages - уровень ошибок;
  • storeWarnMessages - уровень предупреждений;
  • storeLogMessages- уровень логов;
  • storeInfoMessages- уровень информационных сообщений;
  • storeDebugMessages- уровень отладочных сообщений;
  • storeDeprecationMessages- уровень сообщений о подозрительных и устарелых участков исходного кода.

storeErrorMessages - уровень ошибок

На данный уровень выводятся сообщения об ошибках в исходном коде, сообщения о невыполнения условий оператора Ember.assert() сообщения формируемый при обработке исключительных ситуаций в методе new Error(…), …

Для включения сервиса необходимо в конфигурационном файле ember-приложения задать настройку: config.APP.log.storeErrorMessages.

module.exports = function(environment) {
    module.exports = function(environment) {
      var ENV = {
        ...
        APP: {
          ...
          log: {
            enabled: true,
            storeErrorMessages: true,
            ...
          }
          ...
        }
        ...
    };

Для динамического включения логировния данного уровня используйте оператор:

logService.storeErrorMessages = true;

Разработчик может самостоятельно сгенерировать сообщение данного уровня используя функцию:

Ember.Logger.error(«Текст сообщения об ошибке»);

В отличие от стандартного метода метод error() сервиса логирования возвращает Promise. Пользователь в случае необходимости может дождаться выполнения асинхронной операции записи сообщения об ошибке в базу используя оператор:

 Ember.Logger.error(«Текст сообщения об ошибке»).then(result => {«действия после записи сообщения»});

storeWarnMessages - уровень предупреждений

На данный уровень выводятся предупреждения формируемые методом Ember.Logger.warn().

Для включения сервиса необходимо в конфигурационном файле Эмбер-приложения задать настройку: “config.APP.log.storeWarnMessages”.

module.exports = function(environment) {
    module.exports = function(environment) {
      var ENV = {
        ...
        APP: {
          ...
          log: {i18n.t('forms.application.sitemap.log-service-examples.application-log.title')
            enabled: true,
            storeWarnMessages: true,
            ...
          }
          ...
        }
        ...
    };

Для динамического включения логировния данного уровня используйте оператор:

logService.storeWarnMessages = true;

Разработчик может самостоятельно сгенерировать сообщение данного уровня используя функцию:

Ember.Logger.warn(«Текст предупреждения»);

В отличие от стандартного метода метод warn() сервиса логирования возвращает Promise. Пользователь в случае необходимости может дождаться выполнения асинхронной операции записи сообщения об ошибке в базу используя оператор:

Ember.Logger.warn(«Текст предупреждения»).then(result => {«действия после записи сообщения»});

storeLogMessages - уровень логов

На данный уровень выводятся предупреждения формируемые методом Ember.Logger.log().

Для включения сервиса необходимо в конфигурационном файле Эмбер-приложения задать настройку: “config.APP.log.storeLogMessages”.

module.exports = function(environment) {
    module.exports = function(environment) {
      var ENV = {
        ...
        APP: {
          ...
          log: {
            enabled: true,
            storeLogMessages: true,
            ...
          }
          ...
        }
        ...
    };

Для динамического включения логировния данного уровня используйте оператор:

logService.storeLogMessages = true;

Разработчик может самостоятельно сгенерировать сообщение данного уровня используя функцию

Ember.Logger.log(«Текст лога»);

В отличие от стандартного метода метод log() сервиса логирования возвращает Promise. Пользователь в случае необходимости может дождаться выполнения асинхронной операции записи сообщения об ошибке в базу используя оператор:

Ember.Logger.log(«Текст лога»).then(result => {«действия после записи сообщения»});

storeInfoMessages - уровень информационных сообщений

На данный уровень выводятся предупреждения формируемые методом Ember.Logger.info().

Для включения сервиса необходимо в конфигурационном файле Эмбер-приложения задать настройку: “config.APP.log.storeInfoMessages”.

module.exports = function(environment) {
    module.exports = function(environment) {
      var ENV = {
        ...
        APP: {
          ...
          log: {
            enabled: true,
            storeInfoMessages: true,
            ...
          }
          ...
        }
        ...
    };

Для динамического включения логировния данного уровня используйте оператор:

logService.storeInfoMessages = true;

Разработчик может самостоятельно сгенерировать сообщение данного уровня используя функцию

Ember.Logger.info(«Информационный текст»);

В отличие от стандартного метода метод log() сервиса логирования возвращает Promise. Пользователь в случае необходимости может дождаться выполнения асинхронной операции записи сообщения об ошибке в базу используя оператор:

Ember.Logger.info(«Информационный текст»).then(result => {«действия после записи сообщения»});

storeDebugMessages- уровень отладочных сообщений

На данный уровень выводятся предупреждения формируемые методом Ember.Logger.debug().

Для включения сервиса необходимо в конфигурационном файле Эмбер-приложения задать настройку: “config.APP.log.storeDebugMessages”.

module.exports = function(environment) {
    module.exports = function(environment) {
      var ENV = {
        ...
        APP: {
          ...
          log: {
            enabled: true,
            storeDebugMessages: true,
            ...
          }
          ...
        }
        ...
    };

Для динамического включения логировния данного уровня используйте оператор:

logService.storeDebugMessages = true;

Разработчик может самостоятельно сгенерировать сообщение данного уровня используя функцию

Ember.Logger.debug(«Отладочный текст»);

В отличие от стандартного метода метод log() сервиса логирования возвращает Promise. Пользователь в случае необходимости может дождаться выполнения асинхронной операции записи сообщения об ошибке в базу используя оператор:

Ember.Logger.debug(«Отладочный текст»).then(result => {«действия после записи сообщения»});

storeDeprecationMessages - уровень сообщений о подозрительных и устарелых участков исходного кода

На данный уровень выводятся предупреждения формируемые методом Ember.Logger.warn() начинающиеся с префикса ‘DEPRECATION’.

Для включения сервиса необходимо в конфигурационном файле Эмбер-приложения задать настройку: “config.APP.log.storeDeprecationMessages”.

module.exports = function(environment) {
    module.exports = function(environment) {
      var ENV = {
        ...
        APP: {
          ...
          log: {
            enabled: true,
            storeDeprecationMessages: true,
            ...
          }
          ...
        }
        ...
    };

Для динамического включения логировния данного уровня используйте оператор:

logService.storeDeprecationMessages = true;

Разработчик может самостоятельно сгенерировать сообщение данного уровня используя функцию

Ember.Logger.warn('DEPRECATION«Текст лога»');

В отличие от стандартного метода метод log() сервиса логирования возвращает Promise. Пользователь в случае необходимости может дождаться выполнения асинхронной операции записи сообщения об ошибке в базу используя оператор:

Ember.Logger.warn('DEPRECATION«Текст лога»').then(result => {«действия после записи сообщения»});

Просмотр сообщений

ember-flexberry включает в себя model, router и template для отображения таблицы логов. Для включения данного сервиса в приложение необходимо:

добавить строку роутинга в /app/router.js

       this.route('i-i-s-caseberry-logging-objects-application-log-l');

добавить ссылку в sitemap файла app/controllers/application.js

link: 'i-i-s-caseberry-logging-objects-application-log-l',caption: ...,title: ... 

По умолчанию на страница отображаются столбцы:

  • Время - время получения сообщения;
  • Категория - ERROR, WARN, INFO, LOG, DEBUG, DEPRECATION;
  • Сервер - DNS Ember-сервера;
  • Браузер - информация по браузкру клиента;
  • URL -адрес странцы при отображении которой пришло ссобщение;
  • Сообщение - текст сообщения;

Роутер включает в себя две предопределенные настройки пользователя:

  • Message
  • FormattedMessage По умолчанию отображается настройка Message.

При необходимости разработчик может настройку FormattedMessage при которой отображается столбец “Форматированное сообщение” в котором для сообщений уровня Error может содержаться имя файла, строка, стек вызовов места возникновения ошибки.

Воспользовавшись сервисом пользовательских настроей разработчик может донастроить необходимый ему режим отображения спсика сообщений.