1 | "use strict";
|
2 | var __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 | };
|
13 | Object.defineProperty(exports, "__esModule", { value: true });
|
14 | exports.Logger = exports.validateMetadata = exports.WARN = exports.INFO = exports.ERROR = exports.DEBUG = void 0;
|
15 | var logLevels_1 = require("./logLevels");
|
16 | Object.defineProperty(exports, "DEBUG", { enumerable: true, get: function () { return logLevels_1.DEBUG; } });
|
17 | Object.defineProperty(exports, "ERROR", { enumerable: true, get: function () { return logLevels_1.ERROR; } });
|
18 | Object.defineProperty(exports, "INFO", { enumerable: true, get: function () { return logLevels_1.INFO; } });
|
19 | Object.defineProperty(exports, "WARN", { enumerable: true, get: function () { return logLevels_1.WARN; } });
|
20 | var PLATFORM_METADATA_KEY = 'platform';
|
21 | function 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 | }
|
27 | exports.validateMetadata = validateMetadata;
|
28 | var Logger = (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 | }());
|
68 | exports.Logger = Logger;
|
69 |
|
\ | No newline at end of file |