Code coverage report for lib/logger.js

Statements: 52.38% (11 / 21)      Branches: 50% (3 / 6)      Functions: 25% (1 / 4)      Lines: 55% (11 / 20)      Ignored: none     

All files » lib/ » 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          1 1 1   1                             1 16   16           16                     16   16   16    
/**
 * Use logging facilities when available
 * and stub it out when not.
 */
 
try {
  var bunyan = require('bunyan');
  var PrettyStream = require('bunyan-prettystream');
 
  process.stdout.setMaxListeners(100)
} catch(e) {
  module.exports = function () {
    var stubs = {};
 
    ['trace', 'debug', 'info', 'warn', 'error', 'fatal'].forEach(function (level) {
      stubs[level] = function () {}
    })
 
    return stubs
  }
 
  return
}
 
module.exports = function(config) {
  Iif (!config) config = {}
  
  var loggerConfig = {
    name: 'ssdp',
    streams: [],
    src: true
  }
  
  Iif (config.logLevel) {
    var prettyStdOut = new PrettyStream()
    prettyStdOut.pipe(process.stdout)
    
    loggerConfig.streams.push({
      level: 'error',
      type: 'raw',
      stream: prettyStdOut
    })
  }
  
  var logger = bunyan.createLogger(loggerConfig)
 
  config.logLevel && logger.level(config.logLevel)
 
  return logger
}