Created
August 30, 2019 06:30
-
-
Save xettri/3d62152c33b102c5510c2a3c58078008 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//----------------------------------Winston config file--------------------------------// | |
/*https://www.npmjs.com/package/winston*/ | |
const winston = require('winston'); | |
/*https://www.npmjs.com/package/bvalid*/ | |
const bv = require('bvalid'); | |
const logpath = "/var/log/application_name"; | |
const getFileDateTime = ()=>{ | |
var current_date = new Date(); | |
return current_date.getFullYear()+'_'+(current_date.getMonth()+1)+'_'+current_date.getDate(); | |
} | |
const getFileName = (dir)=>{ | |
var _f = logpath; | |
if(bv.isString(dir)){ | |
_f += dir + '/'; | |
}else{ | |
_f += 'application/' | |
} | |
return _f + getFileDateTime() + '.log'; | |
} | |
var debug = (dir)=>{ | |
var _fn = getFileName(dir); | |
return winston.createLogger({ | |
levels: { | |
debug: 0 | |
}, | |
transports: [ | |
new (winston.transports.File)({ filename: _fn, level: 'debug'}), | |
new (winston.transports.Console)({level: 'debug'}) | |
] | |
}); | |
} | |
var info = (dir)=>{ | |
var _fn = getFileName(dir); | |
return winston.createLogger({ | |
levels: { | |
info: 1 | |
}, | |
transports: [ | |
new (winston.transports.File)({ filename: _fn, level: 'info'}), | |
new (winston.transports.Console)({level: 'info'}) | |
] | |
}); | |
} | |
var warn = (dir)=>{ | |
var _fn = getFileName(dir); | |
return winston.createLogger({ | |
levels: { | |
warn: 2 | |
}, | |
transports: [ | |
new (winston.transports.File)({ filename: _fn, level: 'warn'}), | |
new (winston.transports.Console)({level: 'warn'}) | |
] | |
}); | |
} | |
var error = (dir)=>{ | |
var _fn = getFileName(dir); | |
return winston.createLogger({ | |
levels: { | |
error: 3 | |
}, | |
transports: [ | |
new (winston.transports.File)({ filename: _fn, level: 'error'}), | |
new (winston.transports.Console)({level: 'error'}) | |
] | |
}); | |
} | |
var exports = { | |
debug: function(msg,dir){ | |
debug(dir).debug(msg); | |
}, | |
info: function(msg,dir){ | |
info(dir).info(msg); | |
}, | |
warn: function(msg,dir){ | |
warn(dir).warn(msg); | |
}, | |
error: function(msg,dir){ | |
error(dir).error(msg); | |
}, | |
log: function(level,msg,dir){ | |
var lvl = exports[level]; | |
lvl(msg,dir); | |
} | |
}; | |
module.exports = exports; | |
//------------------------------------------------------------------------------------// | |
//---------------------------------Usage in another file-------------------------------// | |
var logger = require('path_to_winston_config"); | |
logger.debug("message","dirname"); //is no dir name it will save in application folder in logpath | |
//or | |
/* |level| |message| |dirname| */ | |
logger.log("error","message","dirname"); | |
//------------------------------------------------------------------------------------// |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment