From fa22f9fbbd1dfbbea60b6ecc9d0cf9af60d72fb7 Mon Sep 17 00:00:00 2001 From: qejk Date: Thu, 28 Apr 2016 20:56:09 +0200 Subject: [PATCH] Moves initialization of console transport to Space.Module, adds additional helper methods to WinstonAdapter --- source/server/module.js | 8 ++++--- source/server/winston-adapter.js | 38 ++++++++++++++++++-------------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/source/server/module.js b/source/server/module.js index da73e52..45cc051 100644 --- a/source/server/module.js +++ b/source/server/module.js @@ -1,3 +1,5 @@ +const winston = Npm.require('winston'); + Space.Module.define('Space.logging.Winston', { dependencies: { @@ -12,7 +14,7 @@ Space.Module.define('Space.logging.Winston', { transports = [this._setupWinstonConsoleTransport()] } - const adapter = new Space.Logger.WinstonAdapter(transports); + const adapter = new Space.Logger.WinstonAdapter(winston, transports); this.injector.map('Space.Logger.WinstonAdapter').toStaticValue(adapter); log.addAdapter('winston', adapter); }, @@ -23,6 +25,6 @@ Space.Module.define('Space.logging.Winston', { prettyPrint: true, level: 'info' }; - return Space.Logger.WinstonAdapter.console(options); + return new winston.transports.Console(options); } -}); +}); \ No newline at end of file diff --git a/source/server/winston-adapter.js b/source/server/winston-adapter.js index 5f88bc5..34a347d 100644 --- a/source/server/winston-adapter.js +++ b/source/server/winston-adapter.js @@ -1,8 +1,9 @@ -const winston = Npm.require('winston'); - const WinstonAdapter = Space.Logger.Adapter.extend('Space.Logger.WinstonAdapter', { - Constructor(transports) { + Constructor(winston, transports) { + if (!winston) { + throw new Error(this.ERRORS.winstonMissing) + } const lib = new winston.Logger({ transports: transports || [] }); @@ -18,29 +19,32 @@ const WinstonAdapter = Space.Logger.Adapter.extend('Space.Logger.WinstonAdapter' return this._lib.remove.apply(this._lib, arguments); }, - hasTransport(transportName) { - return this._lib.transports[transportName] !== null; + hasTransport(name) { + return this._lib.transports[name] !== null && + this._lib.transports[name] !== undefined; + }, + + transport(name) { + return this._lib.transports[name] || null; + }, + + transports() { + return this._lib.transports; }, setLevel(transportName, levelName) { if (!this.hasTransport(transportName)) { - throw new Error(this.ERRORS.transportNotAdded(transportName)); + throw new Error(this.ERRORS.transportNotFound(transportName)); } this._lib.transports[transportName].level = levelName; }, ERRORS: { - transportNotAdded(transportName) { - return `Winston transport with ${transportName} is not added`; + winstonMissing() { + return 'Winston library must be provided as first constructor argument'; + }, + transportNotFound(transportName) { + return `Winston transport with name ${transportName} is not added`; } } }); - -WinstonAdapter.console = (options) => { - const mergedOptions = _.extend({}, { - colorize: true, - prettyPrint: true, - level: 'info' - }, options); - return new winston.transports.Console(mergedOptions); -};