@datadog/browser-logs
Version:
Datadog browser logs library.
95 lines • 3.71 kB
JavaScript
import { __assign } from "tslib";
import { areCookiesAuthorized, assign, checkIsNotLocalFile, commonInit, getGlobalObject, isPercentage, makeGlobal, makeStub, monitor, } from '@datadog/browser-core';
import { buildEnv } from './buildEnv';
import { startLogger } from './logger';
import { startLoggerSession } from './loggerSession';
var STUBBED_LOGGER = {
debug: function (message, context) {
makeStub('logs.logger.debug');
},
error: function (message, context) {
makeStub('logs.logger.error');
},
info: function (message, context) {
makeStub('logs.logger.info');
},
log: function (message, context, status) {
makeStub('logs.logger.log');
},
warn: function (message, context) {
makeStub('logs.logger.warn');
},
setContext: function (context) {
makeStub('logs.logger.setContext');
},
addContext: function (key, value) {
makeStub('logs.logger.addContext');
},
setHandler: function (handler) {
makeStub('logs.logger.setHandler');
},
setLevel: function (level) {
makeStub('logs.logger.setLevel');
},
};
var STUBBED_LOGS = {
logger: STUBBED_LOGGER,
init: function (userConfiguration) {
makeStub('core.init');
},
addLoggerGlobalContext: function (key, value) {
makeStub('addLoggerGlobalContext');
},
setLoggerGlobalContext: function (context) {
makeStub('setLoggerGlobalContext');
},
createLogger: function (name, conf) {
makeStub('createLogger');
return STUBBED_LOGGER;
},
getLogger: function (name) {
makeStub('getLogger');
return undefined;
},
};
export var datadogLogs = makeLogsGlobal(STUBBED_LOGS);
getGlobalObject().DD_LOGS = datadogLogs;
export function makeLogsGlobal(stub) {
var global = makeGlobal(stub);
var isAlreadyInitialized = false;
global.init = monitor(function (userConfiguration) {
if (!checkIsNotLocalFile() || !canInitLogs(userConfiguration)) {
return;
}
if (userConfiguration.publicApiKey) {
userConfiguration.clientToken = userConfiguration.publicApiKey;
console.warn('Public API Key is deprecated. Please use Client Token instead.');
}
var isCollectingError = userConfiguration.forwardErrorsToLogs !== false;
var logsUserConfiguration = __assign(__assign({}, userConfiguration), { isCollectingError: isCollectingError });
var _a = commonInit(logsUserConfiguration, buildEnv), errorObservable = _a.errorObservable, configuration = _a.configuration, internalMonitoring = _a.internalMonitoring;
var session = startLoggerSession(configuration, areCookiesAuthorized());
var globalApi = startLogger(errorObservable, configuration, session, internalMonitoring);
assign(global, globalApi);
isAlreadyInitialized = true;
});
function canInitLogs(userConfiguration) {
if (isAlreadyInitialized) {
if (!userConfiguration.silentMultipleInit) {
console.error('DD_LOGS is already initialized.');
}
return false;
}
if (!userConfiguration || (!userConfiguration.publicApiKey && !userConfiguration.clientToken)) {
console.error('Client Token is not configured, we will not send any data.');
return false;
}
if (userConfiguration.sampleRate !== undefined && !isPercentage(userConfiguration.sampleRate)) {
console.error('Sample Rate should be a number between 0 and 100');
return false;
}
return true;
}
return global;
}
//# sourceMappingURL=logs.entry.js.map