UNPKG

3.49 kBJavaScriptView Raw
1"use strict";
2var _a;
3Object.defineProperty(exports, "__esModule", { value: true });
4var tslib_1 = require("tslib");
5var browser_core_1 = require("@datadog/browser-core");
6var StatusType;
7(function (StatusType) {
8 StatusType["debug"] = "debug";
9 StatusType["info"] = "info";
10 StatusType["warn"] = "warn";
11 StatusType["error"] = "error";
12})(StatusType = exports.StatusType || (exports.StatusType = {}));
13exports.STATUS_PRIORITIES = (_a = {},
14 _a[StatusType.debug] = 0,
15 _a[StatusType.info] = 1,
16 _a[StatusType.warn] = 2,
17 _a[StatusType.error] = 3,
18 _a);
19exports.STATUSES = Object.keys(StatusType);
20var HandlerType;
21(function (HandlerType) {
22 HandlerType["http"] = "http";
23 HandlerType["console"] = "console";
24 HandlerType["silent"] = "silent";
25})(HandlerType = exports.HandlerType || (exports.HandlerType = {}));
26var Logger = /** @class */ (function () {
27 function Logger(sendLog, handlerType, level, loggerContext) {
28 if (handlerType === void 0) { handlerType = HandlerType.http; }
29 if (level === void 0) { level = StatusType.debug; }
30 if (loggerContext === void 0) { loggerContext = {}; }
31 this.sendLog = sendLog;
32 this.handlerType = handlerType;
33 this.level = level;
34 this.contextManager = browser_core_1.createContextManager();
35 this.contextManager.set(loggerContext);
36 }
37 Logger.prototype.log = function (message, messageContext, status) {
38 if (status === void 0) { status = StatusType.info; }
39 if (exports.STATUS_PRIORITIES[status] >= exports.STATUS_PRIORITIES[this.level]) {
40 switch (this.handlerType) {
41 case HandlerType.http:
42 this.sendLog(tslib_1.__assign({ message: message,
43 status: status }, browser_core_1.combine(this.contextManager.get(), messageContext)));
44 break;
45 case HandlerType.console:
46 console.log(status + ": " + message);
47 break;
48 case HandlerType.silent:
49 break;
50 }
51 }
52 };
53 Logger.prototype.debug = function (message, messageContext) {
54 this.log(message, messageContext, StatusType.debug);
55 };
56 Logger.prototype.info = function (message, messageContext) {
57 this.log(message, messageContext, StatusType.info);
58 };
59 Logger.prototype.warn = function (message, messageContext) {
60 this.log(message, messageContext, StatusType.warn);
61 };
62 Logger.prototype.error = function (message, messageContext) {
63 var errorOrigin = {
64 error: {
65 origin: browser_core_1.ErrorOrigin.LOGGER,
66 },
67 };
68 this.log(message, browser_core_1.combine(errorOrigin, messageContext), StatusType.error);
69 };
70 Logger.prototype.setContext = function (context) {
71 this.contextManager.set(context);
72 };
73 Logger.prototype.addContext = function (key, value) {
74 this.contextManager.add(key, value);
75 };
76 Logger.prototype.removeContext = function (key) {
77 this.contextManager.remove(key);
78 };
79 Logger.prototype.setHandler = function (handler) {
80 this.handlerType = handler;
81 };
82 Logger.prototype.setLevel = function (level) {
83 this.level = level;
84 };
85 tslib_1.__decorate([
86 browser_core_1.monitored
87 ], Logger.prototype, "log", null);
88 return Logger;
89}());
90exports.Logger = Logger;
91//# sourceMappingURL=logger.js.map
\No newline at end of file