Last active
August 29, 2015 14:05
-
-
Save derek-watson/88057a3a3907ab45617b to your computer and use it in GitHub Desktop.
Flexible bunyan logger module
This file contains hidden or 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
/* | |
npm install --save bunyan | |
Basic usage: | |
var logger = require('./logger') | |
logger.info('hi') | |
log.warn({lang: 'fr'}, 'au revoir') | |
Create specific loggers for various parts of your app, | |
allowing you to filter the log for just those entries: | |
var logger = require('./logger').create('apiServer') | |
logger.info('hi') | |
log.warn({lang: 'fr'}, 'au revoir') | |
*/ | |
var path = require('path') | |
var util = require('util') | |
var bunyan = require('bunyan') | |
var streams = [] | |
var logfileTemplate = '../log/%s.log' | |
var nodeEnv = process.env.NODE_ENV || 'development' | |
function stdout(level) { | |
streams.push({ level: level || 'info', stream: process.stdout }) | |
} | |
function logfile(level) { | |
var filename = util.format(logfileTemplate, nodeEnv) | |
streams.push({ level: level || 'info', path: path.resolve(__dirname, filename) }) | |
} | |
/* | |
Configure environments here | |
See https://github.com/trentm/node-bunyan#levels | |
*/ | |
switch (nodeEnv) { | |
case 'test': | |
logfile('info') | |
break | |
case 'development': | |
stdout('debug') | |
break | |
case 'staging': | |
stdout('warn') | |
break | |
case 'production': | |
stdout('error') | |
break | |
} | |
function create(name) { | |
return bunyan.createLogger({ | |
name: name, | |
streams: streams, | |
serializers: { | |
req: bunyan.stdSerializers.req | |
} | |
}) | |
} | |
var logger = create('default') | |
module.exports = logger | |
module.exports.create = create | |
module.exports.streams = streams |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment