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.
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
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