Skip to content

qiwi/logwrap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c96620c · Mar 6, 2020

History

57 Commits
Nov 13, 2018
Mar 6, 2020
Dec 17, 2018
Nov 12, 2018
Jul 26, 2019
Jul 27, 2019
Nov 12, 2018
Sep 4, 2019
Nov 12, 2018
Nov 10, 2018
Nov 13, 2018
Nov 12, 2018
Nov 12, 2018
Nov 12, 2018
Mar 6, 2020
Jun 16, 2019
Mar 6, 2020

Repository files navigation

logwrap

Bloody enterprise logger tools.

buildStatus Coverage Status dependencies Status devDependencies Status Maintainability js-standard-style

Motivation

Which logger to choose? Any. Because it doesn't matter at all. Just look at the problem from a different perspective. Logging is stateful data processing — pipeline of formatters, translators that ends in persistent storage. Really significant things:

  • Context detailing
  • Tracing (MDC)
  • Sensitive data masking

Install

yarn add @qiwi/logwrap
npm i @qiwi/logwrap

Usage

// logger.js 

import {Logwrap, masker as maskerFactory, mdc as mdcFactory} from '@qiwi/logwrap'
import winston from 'winston'
import DailyRotateFile  from 'winston-daily-rotate-file'

const { createLogger, transports: {Console}, config: {colorize}} = winston
winston.transports.DailyRotateFile = DailyRotateFile

const mdc =  mdcFactory()
const masker =  maskerFactory()
const logger = createLogger()
logger.configure({...})

const logwrap = new Logwrap({
  pipeline: [mdc, masker, logger],
  level: 'DEBUG'
})

export default logwrap