import { logger, Level } from 'booking-flow-logger'
logger({
level: Level.INFO,
tracking: {
flowId: 'flow-id',
trackId: 'track-id',
home: 'es_cl'
},
action: 'currencies.controller.get',
description: 'lorem ipsum dolor',
query: {
fromCurrency: 'USD',
toCurrency: 'CLP'
}
})
// -> level="INFO" flwid="flow-id" trkid="track-id" home="es_cl" action="currencies.controller.get" description="lorem ipsum dolor" query="'{'fromCurrency':'USD','toCurrency':'CLP'}'"
// This is an alias for the logger({ level: Level.INFO })
logger.info({ /* Log data */ })
logger.error({ /* Log data */ })
// In the test
import { spy } from 'sinon'
import { logger } from 'booking-flow-logger'
describe('test logger in some component', () => {
test('logs query params from request', () => {
spy(logger, 'info')
expect(logger.info).toHaveBeenCalledWith({
// assert the object passed to the logger instead of a string
})
})
})
- GitHub - winstonjs/winston: A logger for just about everything.
- logform/simple.js at master · winstonjs/logform · GitHub
- GitHub - davidmarkclements/fast-safe-stringify: Safely and quickly serialize JavaScript objects
- fast-safe-stringify/benchmark.js at master · davidmarkclements/fast-safe-stringify · GitHub
- Winston 3.0 custom configuration example
- mockDate and test-console examples