1.1.1 • Published 2 years ago

@iamdimka/logger v1.1.1

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

@iamdimka/logger

just another logger

Usage

import logger from "@iamdimka/logger"

//use default instance
logger.info("ready", { version: "1.0.0", branch: "dev" }) 
// outputs { "level": "info", "msg": "ready", "version": "1.0.0", "branch": "dev", "time": "2021-11-29T10:20:18.980Z" }

setCommonData(data: Record<string, any>, append?: boolean): this

logger.setCommonData({ environment: "dev" })

and every log will contain provided extra fields

subScope(scope: string): Logger

You can create a new instance of Logger providing subscope

const scopeA = logger.subScope("a") // every log via this instance will contain param "scope": "a"
const scopeAB = scopeA.subScope("b") // every log via this instance will contain param "scope": "a:b"

setWriteStream(stream: NodeJS.WritableStream): this

sets output different from the default (process.stdout)

log(level: string, message: string, data?: Record<string, any>): void

Write log to a stream. You can use some predefined log levels via the next methods:

  • debug(message: string, data?: Record<string, any>)
  • info(message: string, data?: Record<string, any>)
  • warn(message: string, data?: Record<string, any>)
  • error(message: string, data?: Record<string, any>)
    • if you pass an error object as data, next fields from error object will be logged as data parameters:
    • error - error message
    • stack - error stack (if defined)
    • code - error code (if defined)

create instance of Logger

You can simply create new instance of Logger instead of using global:

import Logger from "@iamdimka/logger"

const logger = new Logger();