UNPKG

log4js2

Version:

[![Build Status](https://travis-ci.org/anigenero/log4js2.svg?branch=master)](https://travis-ci.org/anigenero/log4js2) [![codecov](https://codecov.io/gh/anigenero/log4js2/branch/master/graph/badge.svg)](https://codecov.io/gh/anigenero/log4js2)

176 lines 5.36 kB
Object.defineProperty(exports, "__esModule", { value: true }); const appender_1 = require("./appender"); const console_appender_1 = require("./appender/console.appender"); const log_level_1 = require("./const/log.level"); const logger_1 = require("./logger"); const logger_2 = require("./logger/logger"); const utility_1 = require("./util/utility"); const virtual_console_1 = require("./util/virtual.console"); /** * The default appenders that should be included if no appenders are specified * @const */ const _DEFAULT_APPENDERS = (() => { return [{ appender: console_appender_1.ConsoleAppender, level: log_level_1.LogLevel.ERROR }]; })(); const _DEFAULT_PATTERN_LAYOUT = '%d [%p] %c - %m'; /** * The default configuration for log4js2. If no configuration is specified, then this * configuration will be injected * @const */ const _DEFAULT_CONFIG = (() => ({ appenders: _DEFAULT_APPENDERS, loggers: [{ level: log_level_1.LogLevel.ERROR }], patternLayout: '%d [%p] %c - %m' }))(); /** @type {?IConfiguration} */ let _configuration = null; /** * Gets the appenders for the level and layout * * @private * @function * * @param {ILoggerConfiguration} logConfig * * @returns {Array} */ const _getAppendersForLogger = (logConfig) => { const appenderList = []; appender_1.getAppenders().forEach((value) => { const logger = new value(); logger.setLogLevel(logConfig.level); logger.setLayout(logConfig.patternLayout); appenderList.push(logger); }); return appenderList; }; /** * Configures the loggers * * @private * @function * * @param {IConfiguration} config */ const _configureLoggers = (config) => { let hasMain = false; if (utility_1.isArray(config.loggers)) { config.loggers.forEach((logger) => { logger.tag = logger.tag || logger_1.MAIN_LOGGER; hasMain = hasMain || logger.tag === logger_1.MAIN_LOGGER; if (!logger.patternLayout || typeof logger.patternLayout !== 'string') { logger.patternLayout = config.patternLayout; } logger.patternLayout = logger.patternLayout || _DEFAULT_PATTERN_LAYOUT; logger.level = logger.level || config.level || log_level_1.LogLevel.ERROR; logger_1.addLogger(logger.tag, new logger_2.Logger(logger.tag, _getAppendersForLogger(logger))); }); } else { config.loggers = []; } if (!hasMain) { const mainLoggerConfig = { tag: logger_1.MAIN_LOGGER, level: config.level || log_level_1.LogLevel.ERROR, patternLayout: config.patternLayout || _DEFAULT_PATTERN_LAYOUT, }; config.loggers.push(mainLoggerConfig); logger_1.addLogger(logger_1.MAIN_LOGGER, new logger_2.Logger(logger_1.MAIN_LOGGER, _getAppendersForLogger(mainLoggerConfig))); } }; /** * Configures appenders * * @private * @function * * @param {Array.<LogAppender|function>} appenders */ const _configureAppenders = (appenders) => { if (!utility_1.isArray(appenders)) { appenders = _DEFAULT_APPENDERS; } appenders.forEach((value) => { if (typeof value === 'string') { if (appender_1.getAppender(value)) { // TODO } } else if (value.appender) { if (typeof value.appender === 'string') { if (appender_1.getAppender(value.appender)) { // TODO } } else { appender_1.addAppender(value.appender); } } else if (value.prototype.append) { appender_1.addAppender(value); } else { // TODO: throw an error } }); }; /** * Configures the logger * * @function * @params {IConfiguration} config */ function configure(config) { // set the default layout if (!config.patternLayout) { config.patternLayout = _DEFAULT_PATTERN_LAYOUT; } // configure the appenders _configureAppenders(config.appenders); // configure the loggers _configureLoggers(config); virtual_console_1.getVirtualConsole(logger_1.getLogger(logger_1.MAIN_LOGGER, config)); _configuration = config; } exports.configure = configure; exports.getLogger = (context) => { if (!_configuration) { configure(_DEFAULT_CONFIG); } const logContext = determineContext(context); const loggerConfig = _getLoggerConfiguration(logContext) || _getLoggerConfiguration(logger_1.MAIN_LOGGER); return logger_1.getLogger(logContext, loggerConfig); }; function _getLoggerConfiguration(context) { return _configuration.loggers.filter((value) => value.tag === context)[0]; } function determineContext(context) { // determine the context if (typeof context === 'string') { return context; } if (typeof context === 'function') { return utility_1.getFunctionName(context); } else if (typeof context === 'object') { context = utility_1.getFunctionName(context.constructor); if (context === 'Object') { return 'anonymous'; } else { return context; } } else { return logger_1.MAIN_LOGGER; } } //# sourceMappingURL=log4js.js.map