aboutsummaryrefslogtreecommitdiffstats
path: root/vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/logger.js
diff options
context:
space:
mode:
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/logger.js')
-rw-r--r--vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/logger.js79
1 files changed, 79 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/logger.js b/vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/logger.js
new file mode 100644
index 00000000..2c40bc32
--- /dev/null
+++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/logger.js
@@ -0,0 +1,79 @@
+// This is the **logger** module for *Karma*. It uses
+// [log4js](https://github.com/nomiddlename/log4js-node) to handle and
+// configure all logging that happens inside of *Karma*.
+
+// ### Helpers and Setup
+
+var log4js = require('log4js')
+var helper = require('./helper')
+var constant = require('./constants')
+
+// Special Wrapper for Socket.io :(
+var LogWrapper = function (name, level) {
+ this.logger = log4js.getLogger(name)
+ this.logger.setLevel(level)
+}
+var levels = ['error', 'warn', 'info', 'debug']
+
+levels.forEach(function (level) {
+ LogWrapper.prototype[level] = function () {
+ this.logger[level].apply(this.logger, arguments)
+ }
+})
+
+// #### Public Functions
+
+// Setup the logger by passing in the configuration options. It needs
+// three argumentes:
+//
+// setup(logLevel, colors, appenders)
+//
+// * `logLevel`: *String* Defines the global log level.
+// * `colors`: *Boolean* Use colors in the stdout or not.
+// * `appenders`: *Array* This will be passed as appenders to log4js
+// to allow for fine grained configuration of log4js. For more information
+// see https://github.com/nomiddlename/log4js-node.
+var setup = function (level, colors, appenders) {
+ // Turn color on/off on the console appenders with pattern layout
+ var pattern = colors ? constant.COLOR_PATTERN : constant.NO_COLOR_PATTERN
+
+ // If there are no appenders use the default one
+ appenders = helper.isDefined(appenders) ? appenders : [constant.CONSOLE_APPENDER]
+
+ appenders = appenders.map(function (appender) {
+ if (appender.type === 'console') {
+ if (helper.isDefined(appender.layout) && appender.layout.type === 'pattern') {
+ appender.layout.pattern = pattern
+ }
+ }
+ return appender
+ })
+
+ // Pass the values to log4js
+ log4js.setGlobalLogLevel(level)
+ log4js.configure({
+ appenders: appenders
+ })
+}
+
+// Create a new logger. There are two optional arguments
+// * `name`, which defaults to `karma` and
+// If the `name = 'socket.io'` this will create a special wrapper
+// to be used as a logger for socket.io.
+// * `level`, which defaults to the global level.
+var create = function (name, level) {
+ if (name === 'socket.io') {
+ return new LogWrapper('socket.io', level)
+ } else {
+ var logger = log4js.getLogger(name || 'karma')
+ if (helper.isDefined(level)) {
+ logger.setLevel(level)
+ }
+ return logger
+ }
+}
+
+// #### Publish
+
+exports.create = create
+exports.setup = setup