42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
import _ from 'lodash'
|
|
import bunyan from 'bunyan-lite'
|
|
import config from './config.mjs'
|
|
|
|
//Create our variables
|
|
var env = config.get('NODE_ENV');
|
|
var output;
|
|
|
|
if (config.get('bunyan') || config.get(env + ':use_bunyan')) {
|
|
var settings = _.cloneDeep(config.get(env + ':bunyan'));
|
|
|
|
// Stream can be specified either in settings.streams[ix] or globally in settings.stream, but not
|
|
// both. Since the defaults specify settings.stream, if the user specifies anything of vaulue
|
|
// in settings.streams, we should delete the global defaults, because bunyan gets angry if there
|
|
// are multiple keys
|
|
if (_.has(settings, 'streams')) {
|
|
if (settings.streams) {
|
|
delete settings.stream;
|
|
delete settings.level;
|
|
} else {
|
|
delete settings.streams;
|
|
}
|
|
}
|
|
|
|
_([settings.streams, settings])
|
|
.flatten()
|
|
.compact()
|
|
.forEach(function (settingObj) {
|
|
if (settingObj.stream === 'process.stdout') {
|
|
settingObj.stream = process.stdout;
|
|
} else if (settingObj.stream === 'process.stderr') {
|
|
settingObj.stream = process.stderr;
|
|
}
|
|
});
|
|
|
|
output = bunyan.createLogger(settings);
|
|
} else {
|
|
output = console;
|
|
output.debug = console.log.bind(console);
|
|
}
|
|
|
|
export default output;
|