Home Manual Reference Source Test Repository

src/Log.js

'use strict';

const Config = require('./Config');
const Bunyan = require('bunyan');
const BunyanFormat = require('bunyan-format');

let streams = [];
let logLevel = Config.get('performance') ? 'info' : 'debug';
let logConfig = Config.get('Log');

if (logConfig === '' || logConfig === undefined) {
    throw 'Log Configuration missing.';
}

// Add console output
if (logConfig.Console !== undefined && logConfig.Console.active === true) {
    streams.push({
        level: logLevel,
        stream: BunyanFormat({
            outputMode: logConfig.Console.outputMode,
            color: logConfig.Console.color
        })
    });
}

// Add file output
if (logConfig.File !== undefined && logConfig.File.active === true) {
    streams.push({
        level: logLevel,
        type: 'rotating-file',
        path: Path.join(__dirname, '/../logs/' + logConfig.File.file),
        period: logConfig.File.period,
        count: logConfig.File.count
    });
}

let logger = Bunyan.createLogger({
    name: 'mep',
    streams: streams
});

module.exports = logger;