1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-22 19:07:54 +01:00
unleash.unleash/lib/logger.js

58 lines
1.6 KiB
JavaScript
Raw Normal View History

2016-06-18 21:53:18 +02:00
'use strict';
2016-10-26 10:43:11 +02:00
2016-06-18 21:53:18 +02:00
const log4js = require('log4js');
function getDefaultLogProvider() {
let level;
if (process.env.NODE_ENV === 'production') {
level = log4js.levels.ERROR.levelStr;
} else if (process.env.NODE_ENV === 'test') {
level = log4js.levels.FATAL.levelStr;
} else {
level = log4js.levels.DEBUG.levelStr;
}
2015-03-10 16:30:56 +01:00
log4js.configure({
2017-11-11 11:13:34 +01:00
appenders: {
console: { type: 'console' },
},
categories: {
default: { appenders: ['console'], level },
},
});
return log4js.getLogger;
}
let loggerProvider = getDefaultLogProvider();
function validate(isValid, msg) {
if (!isValid) {
throw new TypeError(msg);
}
}
module.exports.defaultLogProvider = loggerProvider;
function validateLogProvider(provider) {
validate(typeof provider === 'function', 'Provider needs to be a function');
const logger = provider('unleash:logger');
validate(typeof logger.debug === 'function', 'Logger must implement debug');
validate(typeof logger.info === 'function', 'Logger must implement info');
validate(typeof logger.warn === 'function', 'Logger must implement warn');
validate(typeof logger.error === 'function', 'Logger must implement error');
}
exports.validateLogProvider = validateLogProvider;
// Deprecated
exports.setLoggerProvider = function setLoggerProvider(provider) {
validateLogProvider(provider);
loggerProvider = provider;
const logger = provider('unleash:logger');
logger.info(`Your way of configuring a logProvider is depreacted.
See https://unleash.github.io/docs/getting_started for details`);
};