lib/logging/index.js
function (timerFormat) {
            timerFormat = timerFormat || " [Duration: %dms]";
            function timerLog(level, start) {
                return function (message) {
                    var args = argsToArray(arguments, 1);
                    message += timerFormat;
                    args.push(new Date() - start);
                    self.log.apply(self, [level, message].concat(args));
                    return ret;
                };
            }

            var start = new Date(),
                self = this,
                ret = {
                    info: timerLog(Level.INFO, start),
                    debug: timerLog(Level.DEBUG, start),
                    error: timerLog(Level.ERROR, start),
                    warn: timerLog(Level.WARN, start),
                    trace: timerLog(Level.TRACE, start),
                    fatal: timerLog(Level.FATAL, start),
                    log: function (level) {
                        return timerLog(level, start).apply(this, argsToArray(arguments, 1));
                    },
                    end: function () {
                        start = self = null;
                    }
                };
            return ret;
        }
function (timerFormat) {
            timerFormat = timerFormat || " [Duration: %dms]";
            function timerLog(level, start) {
                return function (message) {
                    var args = argsToArray(arguments, 1);
                    message += timerFormat;
                    args.push(new Date() - start);
                    self.log.apply(self, [level, message].concat(args));
                    return ret;
                };
            }

            var start = new Date(),
                self = this,
                ret = {
                    info: timerLog(Level.INFO, start),
                    debug: timerLog(Level.DEBUG, start),
                    error: timerLog(Level.ERROR, start),
                    warn: timerLog(Level.WARN, start),
                    trace: timerLog(Level.TRACE, start),
                    fatal: timerLog(Level.FATAL, start),
                    log: function (level) {
                        return timerLog(level, start).apply(this, argsToArray(arguments, 1));
                    },
                    end: function () {
                        start = self = null;
                    }
                };
            return ret;
        }
function ( timerFormat ) { timerFormat = timerFormat || " [Duration: %dms]" ; function timerLog ( level , start ) { return function ( message ) { var args = argsToArray ( arguments , 1 ) ; message += timerFormat ; args . push ( new Date ( ) - start ) ; self . log . apply ( self , [ level , message ] . concat ( args ) ) ; return ret ; } ; } var start = new Date ( ) , self = this , ret = { info : timerLog ( Level . INFO , start ) , debug : timerLog ( Level . DEBUG , start ) , error : timerLog ( Level . ERROR , start ) , warn : timerLog ( Level . WARN , start ) , trace : timerLog ( Level . TRACE , start ) , fatal : timerLog ( Level . FATAL , start ) , log : function ( level ) { return timerLog ( level , start ) . apply ( this , argsToArray ( arguments , 1 ) ) ; } , end : function ( ) { start = self = null ; } } ; return ret ; }
Create a timer that can be used to log statements with a duration at the send.

```
var timer = LOGGER.timer();
setTimeout(function(){
timer.info("HELLO TIMERS!!!"); //HELLO TIMERS!!! [Duration: 5000ms]
}, 5000);
```

@param timerFormat
@returns {{info: Function, debug: Function, error: Function, warn: Function, trace: Function, fatal: Function, end: Function}}
Create a timer that can be used to log statements with a duration at the send .