'use strict' module.exports = (isDebug, processName) => { let winston = require('winston') if (typeof processName === 'undefined') { processName = 'SERVER' } // Console let logger = new (winston.Logger)({ level: (isDebug) ? 'debug' : 'info', transports: [ new (winston.transports.Console)({ level: (isDebug) ? 'debug' : 'info', prettyPrint: true, colorize: true, silent: false, timestamp: true }) ] }) logger.filters.push((level, msg) => { return '[' + processName + '] ' + msg }) // External services if (appconfig.externalLogging.bugsnag) { const bugsnagTransport = require('./winston-transports/bugsnag') logger.add(bugsnagTransport, { level: 'warn', key: appconfig.externalLogging.bugsnag }) } if (appconfig.externalLogging.loggly) { require('winston-loggly-bulk') logger.add(winston.transports.Loggly, { token: appconfig.externalLogging.loggly.token, subdomain: appconfig.externalLogging.loggly.subdomain, tags: ['wiki-js'], level: 'warn', json: true }) } if (appconfig.externalLogging.papertrail) { require('winston-papertrail').Papertrail // eslint-disable-line no-unused-expressions logger.add(winston.transports.Papertrail, { host: appconfig.externalLogging.papertrail.host, port: appconfig.externalLogging.papertrail.port, level: 'warn', program: 'wiki.js' }) } if (appconfig.externalLogging.rollbar) { const rollbarTransport = require('./winston-transports/rollbar') logger.add(rollbarTransport, { level: 'warn', key: appconfig.externalLogging.rollbar }) } if (appconfig.externalLogging.sentry) { const sentryTransport = require('./winston-transports/sentry') logger.add(sentryTransport, { level: 'warn', key: appconfig.externalLogging.sentry }) } return logger }