1.0.0 • Published 4 months ago

@sergeyzwezdin/node-logger v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

@sergeyzwezdin/node-logger

Winston-based logger configuration with Telegram integration.

node-logger

Usage

  1. npm install --save @sergeyzwezdin/node-logger
  2. Configure layout, verbosity level and Telegram (if necessary)
  3. Patch console object:
import { patchCommonLogger } from '@sergeyzwezdin/node-logger'
patchCommonLogger()
  1. Import logger to write logs into default area
  2. Import scoped to create log area

Configuration

Layout

import { configureLogger } from '@sergeyzwezdin/node-logger'
configureLogger({ kind: 'layout', layout: ['timestamp', 'level', 'area', 'message', 'details', 'error'] })

Verbosity level

import { configureLogger } from '@sergeyzwezdin/node-logger'
configureLogger({ kind: 'verbosity', verbosity: { area: '*', level: 'error' } })
configureLogger({ kind: 'verbosity', verbosity: { area: 'express', level: 'debug' } })

Telegram

import { configureLogger } from '@sergeyzwezdin/node-logger'
configureLogger({
    kind: 'telegram',
    telegram: {
        enabled: true,
        token: process.env.LOGGER_TELEGRAM_TOKEN ?? '',
        chatId: Number(process.env.LOGGER_TELEGRAM_CHAT_ID),
    }
})

Example of usage

import { patchCommonLogger, logger, scoped, configureLogger } from '@sergeyzwezdin/node-logger'

// Configure and patch logger
configureLogger({ kind: 'layout', layout: ['timestamp', 'level', 'area', 'message', 'details', 'error'] })
configureLogger({ kind: 'verbosity', verbosity: { area: '*', level: 'error' } })
configureLogger({ kind: 'verbosity', verbosity: { area: 'express', level: 'debug' } })
configureLogger({
    kind: 'telegram',
    telegram: {
        enabled: true,
        token: process.env.LOGGER_TELEGRAM_TOKEN ?? '',
        chatId: Number(process.env.LOGGER_TELEGRAM_CHAT_ID),
    }
})
patchCommonLogger()

// Create scoped logger
const expressLogger = scoped('express')

// Use logger
logger.info('Starting application')
expressLogger.info('Starting web-server')
expressLogger.error('Unable to start web-server')
console.log('Default message') // also works

License

Released under MIT by Sergey Zwezdin.

1.0.0

4 months ago