Поиск…
Базовая регистрация на стороне сервера
Первый шаг к регистрации - просто запустить 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.
Затем вы захотите ознакомиться с документацией консоли API. Следующие два документа являются неоценимыми ресурсами для обучения в консоли.
Инструменты разработчика Chrome
Расширенные инструменты ведения журнала сервера
После того, как вы запустили ведение журналов на стороне сервера, а также инструменты разработки на стороне клиента, вы можете начать просмотр специальных расширений 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