Buscar..
Registro del lado del servidor básico
El primer paso para el registro es simplemente ejecutar Meteor desde el shell, y obtendrá los registros del servidor en la consola de comandos.
meteor
El siguiente paso es canalizar el contenido de std_out y std_err a un archivo de registro, de esta manera:
meteor > my_app_log.log 2> my_app_err.log
Herramientas de registro del lado del cliente
Una vez que tenga el registro del lado del servidor en su lugar, es hora de saltar al lado del cliente. Si no ha explorado la API de la consola, prepárese para un tratamiento. En realidad, hay todo tipo de cosas que puedes hacer con la API de la consola incorporada que es nativa de cada instalación de Chrome y Safari. Tanto es así que, de hecho, es posible que no necesite Winston u otros marcos de registro.
Lo primero que querrá hacer es instalar el registro del lado del cliente y las herramientas de desarrollo. Chrome y Safari se envían con ellos, pero Firefox requiere la extensión Firebug.
Luego, querrás revisar la documentación de la API de la consola. Los siguientes dos documentos son recursos invaluables para el aprendizaje de la consola de registro.
Herramientas para desarrolladores de Chrome
Herramientas avanzadas de registro del servidor
Una vez que haya ejecutado tanto el registro del lado del servidor como las herramientas de desarrollo del lado del cliente, puede comenzar a buscar en las extensiones específicas de Meteor, como la extensión Meteor Chrome DevTools. ¡Esto le permite observar realmente el registro del servidor en el cliente! Porque la base de datos está en todas partes. Como es el registro.
Extensión de Chrome DevTools (Servidor)
Error de registro en la solapa de la base de datos
El siguiente ejemplo es de 0.5 a 0.7 días e ilustra cómo registrar un error cuando la base de datos aún no ha llenado el cursor del lado del cliente.
Template.landingPage.postsList = function(){
try{
return Posts.find();
}catch(error){
//color code the error (red)
console.error(error);
}
}
Información de registro en el contexto de datos en un ayudante de plantilla
Lo siguiente utiliza la API de registro de Chrome. Si la sintaxis .group()
se usa en varias plantillas, organizará gráficamente los registros de la consola de diferentes plantillas en un árbol jerárquico.
También puede ver cómo inspeccionar el contexto de datos actual y cómo clasificar los datos.
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;
}
Registro de eventos e interacciones del usuario.
Ejemplo simple del uso de la API de registro de Chrome.
Template.landingPage.events({
'click .selectItemButton':function(){
// color code and count the user interaction (blue)
console.count('click .selectItemButton');
}
});
Registro con variables de nivel de registro
El registro a menudo puede saturar la consola, por lo que es común definir los niveles de registro para controlar qué detalles de los datos se están registrando. Un patrón común es especificar las variables de un nivel de 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);
}
});
}
});
Deshabilitar el registro en la producción
Algunos equipos descubren que desean dejar las declaraciones de registro de la consola en su código, pero que no se muestren en producción. Anularán las funciones de registro si una variable no está establecida (posiblemente una variable de entorno). Además, esto puede calificar como una característica de seguridad en algunas situaciones.
if (!DEBUG_MODE_ON) {
console = console || {};
console.log = function(){};
console.log = function(){};
console.error = function(){};
console.count = function(){};
console.info = function(){};
}
Winston
Si necesita algo más poderoso que las opciones de registro predeterminadas, es posible que desee ver una herramienta como Winston. Vaya a Atmosphere y simplemente busque uno de los muchos paquetes de Winston disponibles.
https://atmospherejs.com/?q=winston
Sin embargo, tenga cuidado: Winston es un producto sofisticado y, aunque expone muchas funcionalidades, también agregará una capa de complejidad a su aplicación.
Nivel de registro
Debe hacerse una mención especial para el paquete LogLevel desarrollado por la comunidad. Parece que se logra un equilibrio entre ser liviano y simple de usar, mientras se trabaja bien con el paquete de Meteor y se conservan los números de línea y los nombres de archivo.
https://atmospherejs.com/practicalmeteor/loglevel