Visualización de “logs” del servidor NodeJs en el Browser.
"Porque en la calle codo a codo somos mucho mas que dos..."
Muchas veces al desarrollar una aplicación con un Backend escrito en NodeJs, tendemos a lanzar muchos mensajes a la terminal “console.log(data)” que nos ayudan a realizar un seguimiento del estado de nuestra aplicación, en algún momento se nos hace tedioso buscar esa impresión en la terminal, en algunos casos incluso nos equivocamos de impresión o en algunos casos queremos identificar en que archivo y la linea de código donde se esta ejecutando esa impresión en pantalla “console.log(data)” por que NodeJs solo imprime los argumentos que le pasamos y no nos hace referencia a que archivo y ni en que linea de código se ejecuto esa impresión.
Csb-Inspector
csb-inspector es una librería identifica el archivo y la linea de código donde se esta ejecutando la impresión en pantalla “console.log(data)” y nos muestra la referencia de donde se esta ejecutando la impresión.
File:
Terminal:
Si vemos la anterior imagen, nosotros podemos ver la referencia de a que archivo y linea de código pertenece esa impresión en la terminal.
Instalación
Vamos a nuestra terminal y en la carpeta de nuestro proyecto NodeJs instalamos la dependencia.
$ npm i --save csb-inspector
Una vez instalado implementamos la librería,
const CsbInspector = require('csb-inspector');
CsbInspector({
outputs: [
(path, key, args )=> {
path: "reference to file",
key: "type of console, 'log', 'error'",
args: 'arguments'
}
]
});
Como vemos le enviamos un objeto con una propiedad “outputs” esta contiene un array de funciones que reciben 3 parámetros. Está propiedad nos ayuda a extender la funcionalidad de esta librería, obteniendo esos parámetros podríamos guardarlos en archivo o otras opciones que veamos útiles. Este parámetro no es Obligatorio.
Está implementación nos sera util en cualquier servidor NodeJs.
Pero aun estamos trabajando en la terminal, si bien tenemos las referencia de los impresiones en la terminal, no tenemos la facilidad de hacer búsquedas o simplemente de visualizar de manera más cómoda los datos en la terminal.
Csb-Inspector/express-socket
La librería csb-inspector provee de un panel de control que nos muestra en el browser en tiempo real las Impresiones en la terminal “console.log(data)” con su respectiva referencia a el archivo y linea de código y también muestra la hora en que se produjo.
Esta funcionalidad se puede implementar para aplicaciones que están en base de ExpressJs .
Implementación.
Options.
const options = {
app: app,
route: "_console",
port: 8888,
outputs: [(path, prop, args)=>{
fs.appendFileSync("file.txt", path);
}]
}
- app: Aplicación Express (requerido).
- route: Ruta donde se desplegará el panel de control (Por defecto sera “_console”) (opcional).
- port: Puerto por el cual escucha el socket (Por defecto es el 8888) (opcional).
- outputs: Array de funciones que reciben 3 parámetros, que nos permite extender la funcionalidad de la librería (opcional).
const express = require('express');
const app = express();
const CsbInspector = require('csb-inspector/express-socket');
const options = {
app: app,
route: "_console",
port: 8888,
outputs: [(path, prop, args)=>{
fs.appendFileSync("file.txt", path);
}]
}
CsbInspector(options);
Este código tiene que estar en el archivo donde se inicializa el servidor con ExpressJs.
File:
Levantamos la aplicación y vamos a :
http://localhost:{SERVER_PORT}/{options.router}
En el Panel podemos visualizar las impresiones en la terminal e incluso podemos visualizar errores que ocurrieron en la Aplicación.
Documentación: https://adrianzelada.github.io/csb-inspector
Repositorio: https://github.com/adrianzelada/csb-inspector.
NPM: https://www.npmjs.com/package/csb-inspector
Espero que les sea util esta librería.
Muchas Gracias por su Atención