Skip to content

Instantly share code, notes, and snippets.

@lmichailian
Forked from mariano-aguero/logger.js
Created February 28, 2018 14:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lmichailian/2320099a56068e79bba548cb0de926a9 to your computer and use it in GitHub Desktop.
Save lmichailian/2320099a56068e79bba548cb0de926a9 to your computer and use it in GitHub Desktop.
Papertrail Winston
'use strict';
/* global __base */
let winston = require('winston'),
path = require('path'),
utils = require(__base + 'app/helpers/utils'),
util = require('util');
//winston logging for papertrail
require('winston-papertrail').Papertrail;
let logger;
// change to correct path for logs directory
let logsPath = path.join(__base, 'logs');
let env = process.env.NODE_ENV || 'development';
if (env === 'production') {
logger = new winston.Logger({
transports: [
new winston.transports.Papertrail({
host: utils.perfectEnv('PAPERTRAIL_URL', 'logs2.papertrailapp.com'),
port: utils.perfectEnv('PAPERTRAIL_PORT', 'YOUR_PORT'),
logFormat: (level, message) => {
return '<<<' + level + '>>> ' + message;
},
colorize: true
})
]
});
} else {
logger = new winston.Logger({
transports: [
new (winston.transports.Console)({
level: 'info',
colorize: true,
timestamp: true
})
]
});
}
logger.add(winston.transports.File, {
filename: `${logsPath}/${env}_log.log`,
colorize: true,
level: 'info',
timestamp: true
});
console.log = (...args) => logger.info.call(logger, ...args);
console.info = (...args) => logger.info.call(logger, ...args);
console.warn = (...args) => logger.warn.call(logger, ...args);
console.error = (...args) => logger.error.call(logger, ...args);
console.debug = (...args) => logger.debug.call(logger, ...args);
module.exports = logger;
'use strict';
/* global __base */
module.exports.perfectEnv = (key, defaultValue) => {
const value = process.env[key];
if (value != undefined) {
return value;
} else if (defaultValue){
return defaultValue;
} else {
throw new Error(`Missing ${key} ENV var`)
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment