1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var tslib_1 = require("tslib");
|
4 | var browser_core_1 = require("@datadog/browser-core");
|
5 | var buildEnv_1 = require("./buildEnv");
|
6 | var logger_1 = require("./logger");
|
7 | var loggerSession_1 = require("./loggerSession");
|
8 | var STUBBED_LOGGER = {
|
9 | debug: function (message, context) {
|
10 | browser_core_1.makeStub('logs.logger.debug');
|
11 | },
|
12 | error: function (message, context) {
|
13 | browser_core_1.makeStub('logs.logger.error');
|
14 | },
|
15 | info: function (message, context) {
|
16 | browser_core_1.makeStub('logs.logger.info');
|
17 | },
|
18 | log: function (message, context, status) {
|
19 | browser_core_1.makeStub('logs.logger.log');
|
20 | },
|
21 | warn: function (message, context) {
|
22 | browser_core_1.makeStub('logs.logger.warn');
|
23 | },
|
24 | setContext: function (context) {
|
25 | browser_core_1.makeStub('logs.logger.setContext');
|
26 | },
|
27 | addContext: function (key, value) {
|
28 | browser_core_1.makeStub('logs.logger.addContext');
|
29 | },
|
30 | removeContext: function (key) {
|
31 | browser_core_1.makeStub('logs.logger.removeContext');
|
32 | },
|
33 | setHandler: function (handler) {
|
34 | browser_core_1.makeStub('logs.logger.setHandler');
|
35 | },
|
36 | setLevel: function (level) {
|
37 | browser_core_1.makeStub('logs.logger.setLevel');
|
38 | },
|
39 | };
|
40 | var STUBBED_LOGS = {
|
41 | logger: STUBBED_LOGGER,
|
42 | init: function (userConfiguration) {
|
43 | browser_core_1.makeStub('core.init');
|
44 | },
|
45 | addLoggerGlobalContext: function (key, value) {
|
46 | browser_core_1.makeStub('addLoggerGlobalContext');
|
47 | },
|
48 | setLoggerGlobalContext: function (context) {
|
49 | browser_core_1.makeStub('setLoggerGlobalContext');
|
50 | },
|
51 | createLogger: function (name, conf) {
|
52 | browser_core_1.makeStub('createLogger');
|
53 | return STUBBED_LOGGER;
|
54 | },
|
55 | getLogger: function (name) {
|
56 | browser_core_1.makeStub('getLogger');
|
57 | return undefined;
|
58 | },
|
59 | };
|
60 | exports.datadogLogs = makeLogsGlobal(STUBBED_LOGS);
|
61 | browser_core_1.getGlobalObject().DD_LOGS = exports.datadogLogs;
|
62 | function makeLogsGlobal(stub) {
|
63 | var global = browser_core_1.makeGlobal(stub);
|
64 | var isAlreadyInitialized = false;
|
65 | global.init = browser_core_1.monitor(function (userConfiguration) {
|
66 | if (!browser_core_1.checkIsNotLocalFile() || !canInitLogs(userConfiguration)) {
|
67 | return;
|
68 | }
|
69 | if (userConfiguration.publicApiKey) {
|
70 | userConfiguration.clientToken = userConfiguration.publicApiKey;
|
71 | console.warn('Public API Key is deprecated. Please use Client Token instead.');
|
72 | }
|
73 | var isCollectingError = userConfiguration.forwardErrorsToLogs !== false;
|
74 | var logsUserConfiguration = tslib_1.__assign(tslib_1.__assign({}, userConfiguration), { isCollectingError: isCollectingError });
|
75 | var _a = browser_core_1.commonInit(logsUserConfiguration, buildEnv_1.buildEnv), errorObservable = _a.errorObservable, configuration = _a.configuration, internalMonitoring = _a.internalMonitoring;
|
76 | var session = loggerSession_1.startLoggerSession(configuration, browser_core_1.areCookiesAuthorized());
|
77 | var globalApi = logger_1.startLogger(errorObservable, configuration, session, internalMonitoring);
|
78 | browser_core_1.assign(global, globalApi);
|
79 | isAlreadyInitialized = true;
|
80 | });
|
81 | function canInitLogs(userConfiguration) {
|
82 | if (isAlreadyInitialized) {
|
83 | if (!userConfiguration.silentMultipleInit) {
|
84 | console.error('DD_LOGS is already initialized.');
|
85 | }
|
86 | return false;
|
87 | }
|
88 | if (!userConfiguration || (!userConfiguration.publicApiKey && !userConfiguration.clientToken)) {
|
89 | console.error('Client Token is not configured, we will not send any data.');
|
90 | return false;
|
91 | }
|
92 | if (userConfiguration.sampleRate !== undefined && !browser_core_1.isPercentage(userConfiguration.sampleRate)) {
|
93 | console.error('Sample Rate should be a number between 0 and 100');
|
94 | return false;
|
95 | }
|
96 | return true;
|
97 | }
|
98 | return global;
|
99 | }
|
100 | exports.makeLogsGlobal = makeLogsGlobal;
|
101 |
|
\ | No newline at end of file |