1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var browser_core_1 = require("@datadog/browser-core");
|
4 | var buildEnv_1 = require("./buildEnv");
|
5 | var loggerSession_1 = require("./loggerSession");
|
6 | function 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 | }
|
12 | exports.startLogs = startLogs;
|
13 | function 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 | }
|
27 | exports.doStartLogs = doStartLogs;
|
28 | function 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 | }
|
47 | function assembleMessageContexts(defaultContext, currentContext, rumInternalContext, message) {
|
48 | return browser_core_1.combine(defaultContext, currentContext, rumInternalContext, message);
|
49 | }
|
50 | exports.assembleMessageContexts = assembleMessageContexts;
|
51 | function getRUMInternalContext(startTime) {
|
52 | var rum = window.DD_RUM;
|
53 | return rum && rum.getInternalContext ? rum.getInternalContext(startTime) : undefined;
|
54 | }
|
55 |
|
\ | No newline at end of file |