5.0.3 • Published 1 year ago

inmo-logger v5.0.3

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

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 )

Ejemplo

LOG_LEVEL=debug
LOG_ENVIRONMENT=local
LOG_LOCAL_FOLDER=../logs/
LOG_LOCAL_FILE_NAME=file.log
LOG_LOCAL_EXCEPTION_FILE_NAME=error.log
SERVICE_NAME=chassis

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:

const 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 por ejemplo la siguiente línea de log:

2024-06-03 20:48:18][debug][Chassis][../controllers/ping-controller.ts][175ms][id:ac226b2e-90e2-453c-bb96-21c902257833] >>> Bug Created

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 exception.log caerán todas las excepciones no manejadas (puede probar hacer un throw Error('error') y verá el resultado.

5.0.3

1 year ago

5.0.2

1 year ago

5.0.1

1 year ago

5.0.0

1 year ago

4.0.1

1 year ago

4.0.0

1 year ago

3.0.3

1 year ago

3.0.2

1 year ago

3.0.1

1 year ago

3.0.0

1 year ago

2.1.5

1 year ago

2.1.4

1 year ago

2.1.3

1 year ago

2.1.2

1 year ago

2.1.0

1 year ago

2.0.2

1 year ago

2.0.1

1 year ago

1.2.0

1 year ago

1.0.9

1 year ago

2.0.0

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago