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.

Extensión de 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

Firebug (Cliente)

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



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow