npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

transaction-logger

v1.2.0

Published

This is a custom logging library based on winston.

Downloads

9

Readme

InmoLogger for NodeJS

Orlinski-Zawrzykraj

Introduccion

Ésta es una librería personalizada de logging basada en winston.

Es una librería minimal, toma solo algunas de las funcionalidades que presenta winston, y permite realizar un guardado de log tanto en consola, en un archivo de texto a la vez como tambien publicar en un servidor de syslog. Con el siguiente formato de ejemplo:

[fecha][numero de proceso][nivel del log][archivo que generó el log][tiempo en milisegundos (opcional)] >>> mensaje

Ejemplos
[2020-06-07 12:53:22][30284][debug][../Logger/index.js][5ms] >>> Mensaje debug
[2020-06-07 12:53:22][30284][warn][../Logger/index.js][0ms] >>> Mensaje de alerta
[2020-06-07 12:53:22][30284][error][../Logger/index.js] >>> Mensaje de error

###Configuracion

Se puede configurar para que en el ambiente local guarde los logs en dos archivos: exception.log y server.log Basicamente en el env debe colocar estas variables de entorno, e indicar en el enviroment que está en un ambiente local:

Si el LOG_ENVIRONMENT es local, crea una carpeta para los logs en un archivo, y en consola Si el LOG_ENVIRONMENT es console, solo genera los logs en consola. Log levels ( error | warn | info | verbose | debug )

LOG_LEVEL= ( debug | info | warn | error | crit )
LOG_ENVIRONMENT= (local | console)
LOG_LOCAL_FOLDER= (log folder location )
LOG_LOCAL_FILE_NAME=( logs filename )
LOG_LOCAL_EXCEPTION_FILE_NAME=( exceptions filename )

###Uso

Para importarla debe hacer lo siguiente:

En la constola correr el comando:

npm install inmo-logger

Luego, importar:

import Logger from 'inmo-logger'

Luego debe crear una instancia, en cada archivo donde necesite loggear. Puede hacerlo indicando o no la ruta destino del log:

const logger = new Logger(__filename)

Obs: en el primer argumento, debe siempre agregar __filename, que es la url global del script (archivo) donde estamos creando la librería. Esto nos permite loguear indicando el nombre del archivo que se encuentra logueando.

**Estos son los tipos de mensaje que puede loggear, con niveles INFO, DEBUG, WARN y ERROR:**

logger.info('Mensaje info sin calculo de tiempo')
logger.warn('Mensaje warn sin calculo de tiempo')
logger.error('Mensaje error sin calculo de tiempo')
logger.debug('Mensaje debug sin calculo de tiempo')

También puede agregar un tiempo de inicio, y el logger calculará el tiempo final, y la diferencia en milisegundos:

const initTime = new Date().getTime()

logger.warn('Mensaje warn sin calculo de tiempo',initTime)
logger.error('Mensaje error sin calculo de tiempo',initTime)
logger.debug('Mensaje debug sin calculo de tiempo',initTime)

Por último también podrá agregar un tiempo final, y el logger calculará la diferencia en milisegundos:

var endTime = new Date().getTime()

logger.info('Mensaje info sin calculo de tiempo',initTime,endTime)
logger.warn('Mensaje warn sin calculo de tiempo',initTime,endTime)
logger.error('Mensaje error sin calculo de tiempo',initTime,endTime)
logger.debug('Mensaje debug sin calculo de tiempo',initTime,endTime)

Agregación de guid opcional

Si lo desea pueda agregar un guid al final de cada logueo (siempre como último parámetro):

logger.info("Bug created", initTime, guid)

Y esto generaría la siguiente línea de log:

Lectura del log y excepciones no capturadas

Como indicamos anteriormente, el log se guarda por defecto en la carpeta ./log.

En la misma se guardarán dos archivos: server.log y exception.log.

En el primer archivo accederá al log completo, el cual puede leer en caliente con el comando:

tail -f server.log

Este comando deberá ejecutarse parado en la misma carpeta donde se encuentra el log. Le permitirá ver los cambios del log a medida que se vayan sucediendo, sin tener que refrescar ni volver a ejecutar el comando.

Por otro lado, en el archivo excpetion.log caerán todas las excepciones no manejadas (puede probar hacer un throw Error('error') y verá el resultado.