Code coverage report for lib\common\diagnostics\logger.js

Statements: 81.82% (27 / 33)      Branches: 75% (3 / 4)      Functions: 45.45% (5 / 11)      Lines: 81.82% (27 / 33)      Ignored: none     

All files » lib/common/diagnostics/ » logger.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126                                1 61 61   61 61       1                                                                                   1                     1 6470     1       1       1       1       1 2     1       1       1 2092     1 6470 6470 6470 6470 6470 2       1  
// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 
 
function Logger(level, loggerFunction) {
  this.level = level;
  this.loggerFunction = loggerFunction;
 
  Eif (!this.loggerFunction) {
    this.loggerFunction = this.defaultLoggerFunction;
  }
}
 
Logger.LogLevels = {
  /**
  * System is unusable.
  */
  EMERGENCY: 'emergency',
 
  /**
  * Action must be taken immediately.
  */
  ALERT : 'alert',
 
  /**
  * Critical condition.
  */
  CRITICAL : 'critical',
 
  /**
  * Error condition.
  */
  ERROR : 'error',
 
  /**
  * Warning condition.
  */
  WARNING : 'warning',
 
  /**
  * Normal but significant condition.
  */
  NOTICE : 'notice',
 
  /**
  * Purely informational message.
  */
  INFO : 'info',
 
  /**
  * Application debug messages.
  */
  DEBUG : 'debug'
};
 
Logger.logPriority = [
  Logger.LogLevels.EMERGENCY,
  Logger.LogLevels.ALERT,
  Logger.LogLevels.CRITICAL,
  Logger.LogLevels.ERROR,
  Logger.LogLevels.WARNING,
  Logger.LogLevels.NOTICE,
  Logger.LogLevels.INFO,
  Logger.LogLevels.DEBUG
];
 
Logger.prototype.log = function (level, msg) {
  this.loggerFunction(level, msg);
};
 
Logger.prototype.emergency = function(msg) {
  this.log(Logger.LogLevels.EMERGENCY, msg);
};
 
Logger.prototype.critical = function(msg) {
  this.log(Logger.LogLevels.CRITICAL, msg);
};
 
Logger.prototype.alert = function(msg) {
  this.log(Logger.LogLevels.ALERT, msg);
};
 
Logger.prototype.error = function(msg) {
  this.log(Logger.LogLevels.ERROR, msg);
};
 
Logger.prototype.warn = function(msg) {
  this.log(Logger.LogLevels.WARNING, msg);
};
 
Logger.prototype.notice = function(msg) {
  this.log(Logger.LogLevels.NOTICE, msg);
};
 
Logger.prototype.info = function(msg) {
  this.log(Logger.LogLevels.INFO, msg);
};
 
Logger.prototype.debug = function(msg) {
  this.log(Logger.LogLevels.DEBUG, msg);
};
 
Logger.prototype.defaultLoggerFunction = function(logLevel , msg) {
  var currentLevelIndex = Logger.logPriority.indexOf(this.level);
  var logLevelIndex = Logger.logPriority.indexOf(logLevel);
  var time = new Date();
  var timeStamp = time.toISOString();
  if (logLevelIndex <= currentLevelIndex) {
    console.log('[' + timeStamp + ']' + this.level + ' : ' + msg);
  }
};
 
module.exports = Logger;