Поиск…


Базовая регистрация на стороне сервера

Первый шаг к регистрации - просто запустить Meteor из оболочки, и вы получите журналы сервера в командной консоли.

meteor

Следующий шаг - передать содержимое std_out и std_err в файл журнала, например:

meteor > my_app_log.log 2> my_app_err.log

Инструменты ведения журнала на стороне клиента

После того, как вы зарегистрируетесь на стороне сервера, пришло время перейти на сторону клиента. Если вы не изучили API-интерфейс консоли, будьте готовы к удовольствию. На самом деле есть все, что вы можете сделать со встроенным API Console, который является родным для каждой установки Chrome и Safari. На самом деле, на самом деле, вы, возможно, не нуждаетесь в Winston или других фреймворках регистрации.

Первое, что вам нужно сделать, это установить средства регистрации на стороне клиента и инструменты для разработчиков. Chrome и Safari поставляются вместе с ними, но Firefox требует расширения Firebug.

Расширение Firebug

Затем вы захотите ознакомиться с документацией консоли API. Следующие два документа являются неоценимыми ресурсами для обучения в консоли.

Инструменты разработчика Chrome

Firebug (клиент)

Расширенные инструменты ведения журнала сервера

После того, как вы запустили ведение журналов на стороне сервера, а также инструменты разработки на стороне клиента, вы можете начать просмотр специальных расширений Meteor, таких как расширение Meteor Chrome DevTools Extension. Это позволяет вам наблюдать за сервером в клиенте! Потому что база данных везде. Как и регистрация.

Расширение Chrome DevTools (сервер)

Ошибка регистрации на лотке базы данных

Следующий пример - от 0,5 до 0,7 дня и иллюстрирует, как регистрировать ошибку, когда база данных еще не заполнила курсор на стороне клиента.

Template.landingPage.postsList = function(){
  try{
    return Posts.find();
  }catch(error){
    //color code the error (red)
    console.error(error);
  }
}

Информация о регистрации в контексте данных в помощнике шаблона

Следующее использует API ведения журнала Chrome. Если синтаксис .group() используется в нескольких шаблонах, он будет графически организовывать журналы консоли из разных шаблонов в иерархическое дерево.

Вы также можете посмотреть, как проверить текущий контекст данных и как укрепить данные.

Template.landingPage.getId = function(){
  // using a group block to illustrate function scoping
  console.group('coolFunction');

  // inspect the current data object that landingPage is using
  console.log(this);

  // inspect a specific field of the locally scoped data object
  console.log(JSON.stringify(this._id);

  // close the function scope
  console.groupEnd();
  return this._id;
}

Ведение журнала событий и взаимодействия с пользователем

Простой пример использования API регистрации Chrome.

Template.landingPage.events({
  'click .selectItemButton':function(){
    // color code and count the user interaction (blue)
    console.count('click .selectItemButton');
  }
});

Ведение журнала с помощью переменных уровня журнала

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

var DEBUG = false;
var TRACE = false;
Template.landingPage.events({
  'click .selectItemButton':function(){
    TRACE && console.count('click .selectItemButton');

    Meteor.call('niftyAction', function(errorMessage, result){
        if(errorMessage){
            DEBUG && console.error(errorMessage);    
        }
    });
  }
});

Отключить регистрацию в производстве

Некоторые команды обнаруживают, что хотят оставить консольные записи журнала в своем коде, но не показывать их на рабочем месте. Они будут переопределять функции ведения журнала, если переменная не установлена ​​(возможно, переменная среды). Кроме того, это может квалифицироваться как функция безопасности в некоторых ситуациях.

if (!DEBUG_MODE_ON) {
    console = console || {};
    console.log = function(){};

    console.log = function(){};
    console.error = function(){};
    console.count = function(){};
    console.info = function(){};
}

Winston

Если вам нужно что-то более мощное, чем параметры ведения журнала по умолчанию, вы можете посмотреть на такой инструмент, как Winston. Перейдите в Атмосферу и просто найдите один из множества доступных пакетов Winston.

https://atmospherejs.com/?q=winston

Однако будьте осторожны - Winston - это сложный продукт, и, хотя он предоставляет много функциональности, он также добавит уровень сложности вашему приложению.

LOGLEVEL

Следует особо отметить, что сообщество разработало пакет LogLevel. Похоже, что он балансирует между легким и простым в использовании, хорошо работая с конвейером пакетов Meteor и сохраняя номера строк и имена файлов.

https://atmospherejs.com/practicalmeteor/loglevel



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow