knx
Version: 
KNXnet/IP protocol implementation for Node(>=6.x)
29 lines (26 loc) • 848 B
JavaScript
/**
 * knx.js - a KNX protocol stack in pure Javascript
 * (C) 2016-2018 Elias Karakoulakis
 */
const util = require('util');
let logger;
const create = (options) => {
  const level =
    (options && (options.debug ? 'debug' : options.loglevel)) || 'info';
  //console.trace('new logger, level='+lvl);
  return require('log-driver')({
    level,
    format(lvl, msg /*string*/, ...a) {
      // lvl is the log level ie 'debug'
      const ts = new Date().toISOString().replace(/T/, ' ').replace(/Z$/, '');
      return a.length
        ? // if more than one item to log, assume msg is a fmt string
          util.format('[%s] %s ' + msg, lvl, ts, ...a)
        : // otherwise, msg is a plain string
          util.format('[%s] %s %s', lvl, ts, msg);
    },
  });
};
module.exports = {
  get: (options) => logger || (logger = create(options)),
};