UNPKG

3.07 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var browser_core_1 = require("@datadog/browser-core");
4var buildEnv_1 = require("./buildEnv");
5var loggerSession_1 = require("./loggerSession");
6function startLogs(userConfiguration, errorLogger, getGlobalContext) {
7 var isCollectingError = userConfiguration.forwardErrorsToLogs !== false;
8 var _a = browser_core_1.commonInit(userConfiguration, buildEnv_1.buildEnv, isCollectingError), configuration = _a.configuration, internalMonitoring = _a.internalMonitoring, errorObservable = _a.errorObservable;
9 var session = loggerSession_1.startLoggerSession(configuration, browser_core_1.areCookiesAuthorized(configuration.cookieOptions));
10 return doStartLogs(configuration, errorObservable, internalMonitoring, session, errorLogger, getGlobalContext);
11}
12exports.startLogs = startLogs;
13function doStartLogs(configuration, errorObservable, internalMonitoring, session, errorLogger, getGlobalContext) {
14 internalMonitoring.setExternalContextProvider(function () {
15 return browser_core_1.combine({ session_id: session.getId() }, getGlobalContext(), getRUMInternalContext());
16 });
17 var batch = startLoggerBatch(configuration, session);
18 errorObservable.subscribe(function (e) {
19 return errorLogger.error(e.message, browser_core_1.combine({ date: browser_core_1.getTimestamp(e.startTime) }, e.context, getRUMInternalContext(e.startTime)));
20 });
21 return function (message, currentContext) {
22 if (session.isTracked()) {
23 batch.add(message, currentContext);
24 }
25 };
26}
27exports.doStartLogs = doStartLogs;
28function startLoggerBatch(configuration, session) {
29 var primaryBatch = createLoggerBatch(configuration.logsEndpoint);
30 var replicaBatch;
31 if (configuration.replica !== undefined) {
32 replicaBatch = createLoggerBatch(configuration.replica.logsEndpoint);
33 }
34 function createLoggerBatch(endpointUrl) {
35 return new browser_core_1.Batch(new browser_core_1.HttpRequest(endpointUrl, configuration.batchBytesLimit), configuration.maxBatchSize, configuration.batchBytesLimit, configuration.maxMessageSize, configuration.flushTimeout);
36 }
37 return {
38 add: function (message, currentContext) {
39 var contextualizedMessage = assembleMessageContexts({ service: configuration.service, session_id: session.getId() }, currentContext, getRUMInternalContext(), message);
40 primaryBatch.add(contextualizedMessage);
41 if (replicaBatch) {
42 replicaBatch.add(contextualizedMessage);
43 }
44 },
45 };
46}
47function assembleMessageContexts(defaultContext, currentContext, rumInternalContext, message) {
48 return browser_core_1.combine(defaultContext, currentContext, rumInternalContext, message);
49}
50exports.assembleMessageContexts = assembleMessageContexts;
51function getRUMInternalContext(startTime) {
52 var rum = window.DD_RUM;
53 return rum && rum.getInternalContext ? rum.getInternalContext(startTime) : undefined;
54}
55//# sourceMappingURL=logs.js.map
\No newline at end of file