npm.io
0.1.1 • Published 7 years ago

@amazebot/logger

Licence
MIT
Version
0.1.1
Deps
0
Size
6 kB
Vulns
0
Weekly
0
Stars
1

Logger

Basic log handling with overrides for use within other modules.

When building dependencies of more complex apps, you don't want to be too opinionated about how logs are written, nor add more dependencies that might not play with choices made in the app. However, you also don't want to hard code console.log and end up with multiple output streams.

This package provides standard logging methods for packages requiring it. They route to console.log by default, but apps requiring those packages can pass in their own log utility, to overwrite the default methods (as long as the logger instance is exported).


Import logger in package

import { logger } from '@amazebot/logger'

Provides standard debug/info/warning/error methods

Package re-exports logger
export const pkgLogger = logger
Write your logs in packages
pkgLogger.info(`That's pretty much it.`)

Outputs to console by default, but allows override.

Replace with external logger in app
import { logger } from 'amazing-logger'
import * as myPackage from 'my-package'
myPackage.logger.replace(logger)

Routes to debug/info/warning/error of new interface.

Silence/restore logs before/after tests
import { silence } from '@amazebot/logger'
describe('test methods that log', () => {
  before(() => silence())
  after(() => silence(false))
})

Routes debug/info/warning/error to null output.

Keywords