@dash0/sdk-web
Version:
Dash0's Web SDK to collect telemetry from end-users' web browsers
30 lines (29 loc) • 919 B
JavaScript
import { noop } from "./fn";
const logLevels = {
debug: 0,
info: 1,
warn: 2,
error: 3,
};
let activeLogLevel = logLevels.warn;
/**
* Changes the logging verbosity of Dash0's web SDK. By default, only warnings and errors are logged.
*/
export function setActiveLogLevel(level) {
activeLogLevel = logLevels[level] ?? logLevels.warn;
}
export const info = createLogger("info");
export const warn = createLogger("warn");
export const error = createLogger("error");
export const debug = createLogger("debug");
function createLogger(logLevel) {
if (typeof console !== "undefined" && console[logLevel] && typeof console[logLevel].apply === "function") {
const numericLogLevel = logLevels[logLevel];
return function () {
if (numericLogLevel >= activeLogLevel) {
console[logLevel].apply(console, arguments);
}
};
}
return noop;
}