UNPKG

@zebpay/colt

Version:

LoggerSDK for Microservices with multiple adapters eg: Pino, Winston, Bunyan with support for [Mapped Diagnostics Context](http://logback.qos.ch/manual/mdc.html).

36 lines (32 loc) 1.12 kB
const PinoAdapter = require('../adapters/PinoAdapter'); const BunyanAdapter = require('../adapters/BunyanAdapter'); const WinstonAdapter = require('../adapters/WinstonAdapter'); /** * @class LoggerFactory * @abstract * @classdesc LoggerFactory creates the instance of the adapter based on configurations. */ class LoggerFactory { /** * Gets the instances of the adapter for defined scope * @static * @param {('pino'|'winston'|'bunyan')} adapterName - name of adapter to be used for logging * @param {logOptions} logOptions - LogOptions for logging * @return {LogAdapter} - Instance of Adapter * @throws {Error} - LoggerError when invalid adapter is provided. * @memberof LoggerFactory */ static getAdapter(adapterName, logOptions) { switch (adapterName) { case 'pino': return new PinoAdapter(logOptions); case 'bunyan': return new BunyanAdapter(logOptions); case 'winston': return new WinstonAdapter(logOptions); default: throw new Error('LoggerError: Invalid adapter value.'); } } } module.exports = LoggerFactory;