UNPKG

@log4js2/core

Version:

log4js2 is a fast and lightweight logging library that enables logging flexibility within JavaScript/TypeScript applications, similar to Apache's [Log4j2 library](https://logging.apache.org/log4j/2.x/). It can also serve as a drop-in replacement for log4

55 lines (54 loc) 1.5 kB
Object.defineProperty(exports, "__esModule", { value: true }); var __1 = require("../"); require("reflect-metadata"); var logMarker = Symbol('logMarker'); /** * Sets the marker for the @Log decorator * * @constructor * * @param {Marker} marker */ function LogMarker(marker) { return function (target, key) { Reflect.defineMetadata(logMarker, marker, target, key); }; } exports.LogMarker = LogMarker; /** * Log an error on function entry * * @constructor * * @param {LogLevel} level * @param {string} message * @param {any[]} options * * @returns {Function} */ function Log(level, message) { var options = []; for (var _i = 2; _i < arguments.length; _i++) { options[_i - 2] = arguments[_i]; } return function (target, key, descriptor) { var originalMethod = descriptor.value; descriptor.value = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var marker = Reflect.getOwnMetadata(logMarker, target, key); var logger = __1.getLogger(target); if (marker) { logger.log.apply(logger, [level, marker, message].concat(options)); } else { logger.log.apply(logger, [level, message].concat(options)); } return originalMethod.call(this, args); }; return descriptor; }; } exports.Log = Log;