Skip to content

Instantly share code, notes, and snippets.

@jesprider
Created August 11, 2017 09:55
Show Gist options
  • Save jesprider/2c0c2e74503ab682ce534abea091c5ec to your computer and use it in GitHub Desktop.
Save jesprider/2c0c2e74503ab682ce534abea091c5ec to your computer and use it in GitHub Desktop.
const winston = require('winston');
const path = require('path');
const getLogger = (module, type) => {
const modulePath = module.filename.split('/').slice(-2).join('/');
const logger = new winston.Logger({
transports: [
new (winston.transports.Console)({
colorize: true,
level: (process.env.NODE_ENV === 'development') ? 'debug' : 'error',
label: modulePath
})
]
});
switch (type) {
case 'error':
logger.add(winston.transports.File, {
name: 'error-file',
filename: path.join(__dirname, '../../logs/error_default.log'),
level: 'error'
});
return logger;
case 'info':
logger.add(winston.transports.File, {
name: 'info-file',
filename: path.join(__dirname, '../../logs/info_default.log'),
level: 'info'
});
return logger;
default:
return logger;
}
};
module.exports = module => ({
error(err) {
getLogger(module, 'error').error(err);
},
info(err) {
getLogger(module, 'info').info(err);
},
debug(err) {
getLogger(module, 'default').debug(err);
}
});
//
// Usage
// const logger = require('logger')(module);
// logger.info('Logging with winston');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment