Ricerca…


Registrazione lato server di base

Il primo passo per la registrazione è semplicemente quello di eseguire Meteor dalla shell, e avrai i log del server nella console di comando.

meteor

Il prossimo passo è il pipe del contenuto di std_out e std_err in un file di log, in questo modo:

meteor > my_app_log.log 2> my_app_err.log

Strumenti di registrazione lato client

Una volta che hai registrato il tuo server side logging, è ora di saltare sul lato client. Se non hai esplorato l'API della console, preparati per un trattamento. In realtà c'è tutto ciò che puoi fare con l'API console integrata, nativa di ogni installazione di Chrome e Safari. Tanto che, in effetti, potresti non avere bisogno di Winston o altri framework di registrazione.

La prima cosa che vorrai fare è installare gli strumenti di logging e di sviluppo del client. Sia Chrome che Safari vengono spediti insieme a loro, ma Firefox richiede l'estensione Firebug.

Firebug Extension

Quindi, ti consigliamo di consultare la documentazione dell'API della console. I seguenti due documenti sono risorse inestimabili per la registrazione della console di apprendimento.

Strumenti per sviluppatori di Chrome

Firebug (Cliente)

Strumenti avanzati di registrazione dei server

Dopo aver eseguito sia la registrazione lato server che gli strumenti di sviluppo lato client, è possibile iniziare a consultare estensioni specifiche di Meteor come l'estensione Meteor Chrome DevTools. Ciò ti consente di osservare effettivamente l'accesso al server nel client! Perché il database è ovunque. Come sta registrando.

Chrome DevTools Extension (Server)

Errore di registrazione sul lembo del database

L'esempio seguente è compreso tra 0,5 e 0,7 giorni e illustra come registrare un errore quando il database non ha ancora inserito il cursore sul lato client.

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

Registrazione delle informazioni sul contesto dei dati in un helper del modello

Quanto segue utilizza l'API di registrazione di Chrome. Se la sintassi .group() viene utilizzata in più modelli, organizzerà graficamente i registri della console da diversi modelli in un albero gerarchico.

Puoi anche vedere come esaminare il contesto attuale dei dati e come stringere i dati.

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

Registrazione di eventi e interazioni dell'utente

Semplice esempio di utilizzo dell'API di registrazione di Chrome.

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

Registrazione con variabili di livello log

La registrazione può spesso ingombrare la console, quindi è comune definire i livelli di registro per controllare quali dettagli dei dati vengono registrati. Un modello comune è quello di specificare variabili di livello di registro.

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

Disabilita registrazione nella produzione

Alcuni team scoprono di voler lasciare le istruzioni del registro della console nel loro codice, ma non di visualizzarlo in produzione. Sostituiranno le funzioni di registrazione se non è impostata una variabile (probabilmente una variabile di ambiente). Inoltre, in alcune situazioni questo può essere considerato una caratteristica di sicurezza.

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

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

Winston

Se hai bisogno di qualcosa di più potente delle opzioni di registrazione predefinite, potresti voler guardare uno strumento come Winston. Vai ad Atmosphere e cerca semplicemente uno dei tanti pacchetti Winston disponibili.

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

Attenzione, tuttavia, Winston è un prodotto sofisticato e, sebbene esponga molte funzionalità, aggiungerà anche un livello di complessità alla tua applicazione.

Loglevel

Una menzione speciale dovrebbe essere fatta per il pacchetto LogLevel sviluppato dalla comunità. Sembra essere in equilibrio tra l'essere leggero e semplice da usare, mentre funziona bene con la pipeline di Meteor e preservando numeri di riga e nomi di file.

https://atmospherejs.com/practicalmeteor/loglevel



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow