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)

121 lines 3.36 kB
Object.defineProperty(exports, "__esModule", { value: true }); const __1 = require(".."); const marker_1 = require("../marker"); class Logger { constructor(context, _appenders) { this._appenders = _appenders; this._logContext = context; this._logSequence = 1; this._relative = (new Date()).getTime(); } /** * Logs an error event * * @function * @memberOf Logger */ error(...args) { this._appenders.forEach((appender) => appender.append(this._constructLogEvent(__1.LogLevel.ERROR, arguments))); } /** * Logs a warning * * @function * @memberOf Logger */ warn(...args) { this._appenders.forEach((appender) => appender.append(this._constructLogEvent(__1.LogLevel.WARN, arguments))); } /** * Logs an info level event * * @function * @memberOf Logger */ info(...args) { this._appenders.forEach((appender) => appender.append(this._constructLogEvent(__1.LogLevel.INFO, arguments))); } /** * Logs a debug event * * @function * @memberOf Logger */ debug(...args) { this._appenders.forEach((appender) => appender.append(this._constructLogEvent(__1.LogLevel.DEBUG, arguments))); } /** * Logs a trace event * * @function * @memberOf Logger */ trace(...args) { this._appenders.forEach((appender) => appender.append(this._constructLogEvent(__1.LogLevel.TRACE, arguments))); } /** * @function * * @param {number} level * @param {Array.<Object>} args * * @return {ILogEvent} */ _constructLogEvent(level, args) { const logTime = new Date(); let error = null; // this looks horrible, but this is the only way to catch the stack for IE to later parse the stack try { throw new Error(); } catch (e) { error = e; } const logEvent = { date: logTime, error: null, logErrorStack: error, file: null, level, lineNumber: null, logger: this._logContext, message: '', method: this._isNotStrict() ? args.callee.caller : 0, properties: undefined, relative: logTime.getTime() - this._relative, sequence: this._logSequence++, }; const regex = /\{\}/g; for (let i = 0; i < args.length; i++) { if (i === 0) { logEvent.message = args[i]; } else if (regex.exec(logEvent.message)) { logEvent.message = logEvent.message.replace(/\{\}/, args[i]); } else if (args[i] instanceof Error) { logEvent.error = args[i]; } else if (args[i] instanceof marker_1.default) { logEvent.marker = args[i]; } else { logEvent.properties = args[i]; } } return logEvent; } /** * Returns whether or not the script is in strict mode * * @private * @function * * @returns {boolean} */ _isNotStrict() { return (() => !this)(); } } exports.Logger = Logger; //# sourceMappingURL=logger.js.map