UNPKG

3.03 kBJavaScriptView Raw
1"use strict";
2var __assign = (this && this.__assign) || function () {
3 __assign = Object.assign || function(t) {
4 for (var s, i = 1, n = arguments.length; i < n; i++) {
5 s = arguments[i];
6 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7 t[p] = s[p];
8 }
9 return t;
10 };
11 return __assign.apply(this, arguments);
12};
13Object.defineProperty(exports, "__esModule", { value: true });
14exports.Logger = exports.validateMetadata = exports.WARN = exports.INFO = exports.ERROR = exports.DEBUG = void 0;
15var logLevels_1 = require("./logLevels");
16Object.defineProperty(exports, "DEBUG", { enumerable: true, get: function () { return logLevels_1.DEBUG; } });
17Object.defineProperty(exports, "ERROR", { enumerable: true, get: function () { return logLevels_1.ERROR; } });
18Object.defineProperty(exports, "INFO", { enumerable: true, get: function () { return logLevels_1.INFO; } });
19Object.defineProperty(exports, "WARN", { enumerable: true, get: function () { return logLevels_1.WARN; } });
20var PLATFORM_METADATA_KEY = 'platform';
21function validateMetadata(metadata) {
22 if (metadata.hasOwnProperty(PLATFORM_METADATA_KEY)) {
23 throw new Error("\"".concat(PLATFORM_METADATA_KEY, "\" key is a reserved metadata key"));
24 }
25 return metadata;
26}
27exports.validateMetadata = validateMetadata;
28var Logger = /** @class */ (function () {
29 function Logger(opts) {
30 var _a;
31 this.metadata = {};
32 this.backends = (_a = opts === null || opts === void 0 ? void 0 : opts.backends) !== null && _a !== void 0 ? _a : [];
33 }
34 Logger.prototype.info = function (message, metadata) {
35 this.send(logLevels_1.INFO, message, metadata);
36 };
37 Logger.prototype.warn = function (message, metadata) {
38 this.send(logLevels_1.WARN, message, metadata);
39 };
40 Logger.prototype.error = function (message, metadata) {
41 this.send(logLevels_1.ERROR, message, metadata);
42 };
43 Logger.prototype.debug = function (message, metadata) {
44 this.send(logLevels_1.DEBUG, message, metadata);
45 };
46 Logger.prototype.setMetadata = function (metadata) {
47 this.metadata = validateMetadata(metadata);
48 };
49 Logger.setPlatformMetadata = function (metadata) {
50 Logger.platformMetadata = metadata;
51 };
52 Logger.prototype.send = function (level, message, metadata) {
53 if (metadata === void 0) { metadata = {}; }
54 var event = {
55 level: level,
56 message: message,
57 timestamp: new Date(),
58 metadata: this.combineMetadata(validateMetadata(metadata)),
59 };
60 this.backends.forEach(function (backend) { return backend.log(event); });
61 };
62 Logger.prototype.combineMetadata = function (metadata) {
63 return __assign(__assign(__assign({}, this.metadata), metadata), { platform: Logger.platformMetadata });
64 };
65 Logger.platformMetadata = {};
66 return Logger;
67}());
68exports.Logger = Logger;
69//# sourceMappingURL=Logger.js.map
\No newline at end of file