Szukaj…


Podstawowe logowanie po stronie serwera

Pierwszym krokiem do logowania jest po prostu uruchomienie Meteora z powłoki, a otrzymasz dzienniki serwera w konsoli poleceń.

meteor

Następnym krokiem jest potokowanie zawartości std_out i std_err do pliku dziennika, w następujący sposób:

meteor > my_app_log.log 2> my_app_err.log

Narzędzia do rejestrowania po stronie klienta

Po zalogowaniu się po stronie serwera nadszedł czas, aby przejść do strony klienta. Jeśli nie korzystałeś z interfejsu API konsoli, przygotuj się na niespodziankę. W rzeczywistości jest wiele rzeczy, które możesz zrobić dzięki wbudowanemu interfejsowi API konsoli, który jest natywny dla każdej instalacji Chrome i Safari. Tak bardzo, że może się okazać, że nie potrzebujesz Winstona ani innych platform logowania.

Pierwszą rzeczą, którą chcesz zrobić, to zainstalować narzędzia do rejestrowania i programowania dla klientów. Zarówno Chrome, jak i Safari są dostarczane z nimi, ale Firefox wymaga rozszerzenia Firebug.

Rozszerzenie Firebug

Następnie zajrzyj do dokumentacji interfejsu API konsoli. Poniższe dwa dokumenty są nieocenionymi zasobami do nauki logowania do konsoli.

Narzędzia dla programistów Chrome

Firebug (klient)

Zaawansowane narzędzia do rejestrowania serwerów

Po uruchomieniu zarówno rejestrowania po stronie serwera, jak i narzędzi programistycznych po stronie klienta, możesz zacząć patrzeć na rozszerzenia specyficzne dla Meteor, takie jak rozszerzenie Meteor Chrome DevTools. To pozwala obserwować logowanie serwera do klienta! Ponieważ baza danych jest wszędzie. Jak się loguje.

Rozszerzenie Chrome DevTools (serwer)

Błąd logowania na klapie bazy danych

Poniższy przykład przedstawia czas od 0,5 do 0,7 dni i ilustruje sposób rejestrowania błędu, gdy baza danych nie zapełniła jeszcze kursora po stronie klienta.

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

Rejestrowanie informacji o kontekście danych w szablonie pomocniczym

Poniższe korzysta z interfejsu API do logowania Chrome. Jeśli składnia .group() jest używana w wielu szablonach, graficznie zorganizuje dzienniki konsoli z różnych szablonów w hierarchiczne drzewo.

Możesz także zobaczyć, jak sprawdzić bieżący kontekst danych i jak skorygować dane.

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;
}

Rejestrowanie zdarzeń i interakcji użytkownika

Prosty przykład użycia interfejsu Chrome Logging API.

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

Rejestrowanie za pomocą zmiennych poziomu dziennika

Rejestrowanie często może zagracać konsolę, dlatego często definiuje się poziomy dziennika, aby kontrolować, jakie szczegóły danych są rejestrowane. Częstym wzorcem jest określenie zmiennych poziomu dziennika.

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);    
        }
    });
  }
});

Wyłącz logowanie w produkcji

Niektóre zespoły stwierdzają, że chcą pozostawić instrukcje dziennika konsoli w kodzie, ale nie wyświetlają ich w trakcie produkcji. Zastąpią funkcje rejestrowania, jeśli zmienna nie jest ustawiona (prawdopodobnie zmienna środowiskowa). Dodatkowo może to kwalifikować się jako funkcja bezpieczeństwa w niektórych sytuacjach.

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

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

Winston

Jeśli potrzebujesz czegoś potężniejszego niż domyślne opcje rejestrowania, możesz przyjrzeć się narzędziu jak Winston. Przejdź do Atmosphere i po prostu wyszukaj jeden z wielu dostępnych pakietów Winston.

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

Ostrzegamy jednak - Winston jest wyrafinowanym produktem i chociaż zapewnia wiele funkcjonalności, doda również złożoności twojej aplikacji.

Loglevel

Należy szczególnie wspomnieć o opracowanym przez społeczność pakiecie LogLevel. Wydaje się, że zachowuje równowagę między lekkością i prostotą obsługi, a jednocześnie dobrze współpracuje z rurociągiem pakietów Meteor oraz zachowuje numery linii i nazwy plików.

https://atmospherejs.com/practicalmeteor/loglevel



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow