Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / karma / lib / logger.js
1 // This is the **logger** module for *Karma*. It uses
2 // [log4js](https://github.com/nomiddlename/log4js-node) to handle and
3 // configure all logging that happens inside of *Karma*.
4
5 // ### Helpers and Setup
6
7 var log4js = require('log4js')
8 var helper = require('./helper')
9 var constant = require('./constants')
10
11 // Special Wrapper for Socket.io :(
12 var LogWrapper = function (name, level) {
13   this.logger = log4js.getLogger(name)
14   this.logger.setLevel(level)
15 }
16 var levels = ['error', 'warn', 'info', 'debug']
17
18 levels.forEach(function (level) {
19   LogWrapper.prototype[level] = function () {
20     this.logger[level].apply(this.logger, arguments)
21   }
22 })
23
24 // #### Public Functions
25
26 // Setup the logger by passing in the configuration options. It needs
27 // three argumentes:
28 //
29 //     setup(logLevel, colors, appenders)
30 //
31 // * `logLevel`: *String* Defines the global log level.
32 // * `colors`: *Boolean* Use colors in the stdout or not.
33 // * `appenders`: *Array* This will be passed as appenders to log4js
34 //   to allow for fine grained configuration of log4js. For more information
35 //   see https://github.com/nomiddlename/log4js-node.
36 var setup = function (level, colors, appenders) {
37   // Turn color on/off on the console appenders with pattern layout
38   var pattern = colors ? constant.COLOR_PATTERN : constant.NO_COLOR_PATTERN
39
40   // If there are no appenders use the default one
41   appenders = helper.isDefined(appenders) ? appenders : [constant.CONSOLE_APPENDER]
42
43   appenders = appenders.map(function (appender) {
44     if (appender.type === 'console') {
45       if (helper.isDefined(appender.layout) && appender.layout.type === 'pattern') {
46         appender.layout.pattern = pattern
47       }
48     }
49     return appender
50   })
51
52   // Pass the values to log4js
53   log4js.setGlobalLogLevel(level)
54   log4js.configure({
55     appenders: appenders
56   })
57 }
58
59 // Create a new logger. There are two optional arguments
60 // * `name`, which defaults to `karma` and
61 //   If the `name = 'socket.io'` this will create a special wrapper
62 //   to be used as a logger for socket.io.
63 // * `level`, which defaults to the global level.
64 var create = function (name, level) {
65   if (name === 'socket.io') {
66     return new LogWrapper('socket.io', level)
67   } else {
68     var logger = log4js.getLogger(name || 'karma')
69     if (helper.isDefined(level)) {
70       logger.setLevel(level)
71     }
72     return logger
73   }
74 }
75
76 // #### Publish
77
78 exports.create = create
79 exports.setup = setup