@datadog/browser-logs
Version:
Datadog browser logs library.
98 lines • 4.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var browser_core_1 = require("@datadog/browser-core");
var buildEnv_1 = require("./buildEnv");
var logger_1 = require("./logger");
var loggerSession_1 = require("./loggerSession");
var STUBBED_LOGGER = {
debug: function (message, context) {
browser_core_1.makeStub('logs.logger.debug');
},
error: function (message, context) {
browser_core_1.makeStub('logs.logger.error');
},
info: function (message, context) {
browser_core_1.makeStub('logs.logger.info');
},
log: function (message, context, status) {
browser_core_1.makeStub('logs.logger.log');
},
warn: function (message, context) {
browser_core_1.makeStub('logs.logger.warn');
},
setContext: function (context) {
browser_core_1.makeStub('logs.logger.setContext');
},
addContext: function (key, value) {
browser_core_1.makeStub('logs.logger.addContext');
},
setHandler: function (handler) {
browser_core_1.makeStub('logs.logger.setHandler');
},
setLevel: function (level) {
browser_core_1.makeStub('logs.logger.setLevel');
},
};
var STUBBED_LOGS = {
logger: STUBBED_LOGGER,
init: function (userConfiguration) {
browser_core_1.makeStub('core.init');
},
addLoggerGlobalContext: function (key, value) {
browser_core_1.makeStub('addLoggerGlobalContext');
},
setLoggerGlobalContext: function (context) {
browser_core_1.makeStub('setLoggerGlobalContext');
},
createLogger: function (name, conf) {
browser_core_1.makeStub('createLogger');
return STUBBED_LOGGER;
},
getLogger: function (name) {
browser_core_1.makeStub('getLogger');
return undefined;
},
};
exports.datadogLogs = makeLogsGlobal(STUBBED_LOGS);
browser_core_1.getGlobalObject().DD_LOGS = exports.datadogLogs;
function makeLogsGlobal(stub) {
var global = browser_core_1.makeGlobal(stub);
var isAlreadyInitialized = false;
global.init = browser_core_1.monitor(function (userConfiguration) {
if (!browser_core_1.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 = tslib_1.__assign(tslib_1.__assign({}, userConfiguration), { isCollectingError: isCollectingError });
var _a = browser_core_1.commonInit(logsUserConfiguration, buildEnv_1.buildEnv), errorObservable = _a.errorObservable, configuration = _a.configuration, internalMonitoring = _a.internalMonitoring;
var session = loggerSession_1.startLoggerSession(configuration, browser_core_1.areCookiesAuthorized());
var globalApi = logger_1.startLogger(errorObservable, configuration, session, internalMonitoring);
browser_core_1.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 && !browser_core_1.isPercentage(userConfiguration.sampleRate)) {
console.error('Sample Rate should be a number between 0 and 100');
return false;
}
return true;
}
return global;
}
exports.makeLogsGlobal = makeLogsGlobal;
//# sourceMappingURL=logs.entry.js.map