diff --git a/demo/demo.js b/demo/demo.js index 4a6126d..2049667 100644 --- a/demo/demo.js +++ b/demo/demo.js @@ -1,28 +1,28 @@ // Innotrade Enapso Logger -// (C) Copyright 2019 Innotrade GmbH, Herzogenrath, NRW, Germany +// (C) Copyright 2019-2020 Innotrade GmbH, Herzogenrath, NRW, Germany // Author: Alexander Schulze // a new console object for enhanced logging to the console -const { EnapsoLogger } = require('../index'); -global.enlogger = new EnapsoLogger(); -enlogger.setLevel(EnapsoLogger.ALL); +const { EnapsoLogger, EnapsoLoggerFactory } = require('../index'); +EnapsoLoggerFactory.createGlobalLogger('enLogger'); +enLogger.setLevel(EnapsoLogger.ALL); function demo() { - enlogger.setLevel(EnapsoLogger.ALL); + enLogger.setLevel(EnapsoLogger.ALL); - enlogger.log("This is a standard log line, just for compatibility reasons"); - enlogger.debug("This is a debug message"); - enlogger.info("This is an information"); - enlogger.warn("This is a warning"); - enlogger.error("This is an error message"); - enlogger.fatal("This is a fatal message"); + enLogger.log('This is a standard log line, just for compatibility reasons'); + enLogger.debug('This is a debug message'); + enLogger.info('This is an information'); + enLogger.warn('This is a warning'); + enLogger.error('This is an error message'); + enLogger.fatal('This is a fatal message'); - enlogger.info(enlogger.separatorLine()); - enlogger.setActive(false); - enlogger.info("This message will NOT be shown"); - enlogger.setActive(true); - enlogger.info("This message will be shown again"); + enLogger.info(enLogger.separatorLine()); + enLogger.setActive(false); + enLogger.info('This message will NOT be shown'); + enLogger.setActive(true); + enLogger.info('This message will be shown again'); } demo(); diff --git a/index.js b/index.js index 5fd90c1..31d4c58 100644 --- a/index.js +++ b/index.js @@ -4,8 +4,9 @@ // a new console object for enhanced logging to the console -const { EnapsoLogger } = require('./lib/enapso-logger'); +const { EnapsoLogger, EnapsoLoggerFactory, enlogger } = require('./lib/enapso-logger'); module.exports = { - EnapsoLogger + EnapsoLogger, EnapsoLoggerFactory, + enlogger } diff --git a/lib/enapso-logger.js b/lib/enapso-logger.js index e2665f0..9393aaa 100644 --- a/lib/enapso-logger.js +++ b/lib/enapso-logger.js @@ -156,6 +156,39 @@ class EnapsoLogger { } +class EnapsoLoggerFactory { + + static logger = {}; + + static getLogger(alias) { + alias = alias || '$default'; + let logger = this.logger[alias]; + if (logger) return logger; + logger = new EnapsoLogger(); + this.logger[alias] = logger; + return logger; + } + + static createGlobalLogger(alias) { + if (!alias) { + throw "No alias for global logger!"; + } + let logger = global[alias]; + if (logger) return logger; + logger = new EnapsoLogger(); + global[alias] = logger; + return logger; + } + +} + +const enLoggerFactory = new EnapsoLoggerFactory(); + module.exports = { - EnapsoLogger + // without name space + EnapsoLogger, EnapsoLoggerFactory, + // with namespace + enlogger: { + EnapsoLogger, EnapsoLoggerFactory + } } \ No newline at end of file diff --git a/package.json b/package.json index e3ba298..e78a3b2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@innotrade/enapso-logger", - "version": "1.0.0", + "version": "1.1.0", "description": "Enapso Logger", "main": "index.js", "scripts": {