| Server IP : 68.183.124.220 / Your IP : 216.73.217.137 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/gavin/workspace/happymandarin/node_modules/log-driver/ |
Upload File : |
var util = require('util');
var LogDriver = function(options){
options = options || {};
var logger = this;
if (options.format){
this.format = options.format;
}
this.levels = options.levels || ['error', 'warn', 'info', 'debug', 'trace'];
if (options.level === false){
this.level = false; // don't log anything
} else {
this.level = options.level || this.levels[this.levels.length - 1];
if (this.levels.indexOf(this.level) === -1){
throw new Error("Log level '" +
this.level +
"' does not exist in level list '" + JSON.stringify() + "'");
}
}
this.levels.forEach(function(level){
if (logLevelShouldOutput(level, logger.level, logger.levels)){
logger[level] = function(){
var args = Array.prototype.slice.call(arguments);
args.unshift(level); // log level is added as the first parameter
console.log(logger.format.apply(logger, args));
};
} else {
logger[level] = function(){/* no-op, because this log level is ignored */};
}
});
};
var logLevelShouldOutput = function(logLevel, configuredLevel, levels){
if (configuredLevel === false){
return false;
}
return (levels.indexOf(logLevel) <= levels.indexOf(configuredLevel));
};
LogDriver.prototype.format = function(){
var args = Array.prototype.slice.call(arguments, [1]); // change arguments to an array, but
// drop the first item (log level)
var out = "[" + arguments[0] + "] " + JSON.stringify(new Date()) + " ";
args.forEach(function(arg){
out += " " + util.inspect(arg);
});
return out;
};
var defaultLogger = null;
var factory = function(options){
defaultLogger = new LogDriver(options);
factory.logger = defaultLogger;
return defaultLogger;
};
factory();
module.exports = factory;