1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- import { DEBUG_BUILD } from './debug-build.js';
- import { GLOBAL_OBJ } from './worldwide.js';
- /** Prefix for logging strings */
- const PREFIX = 'Sentry Logger ';
- const CONSOLE_LEVELS = [
- 'debug',
- 'info',
- 'warn',
- 'error',
- 'log',
- 'assert',
- 'trace',
- ] ;
- /** This may be mutated by the console instrumentation. */
- const originalConsoleMethods
- = {};
- /** JSDoc */
- /**
- * Temporarily disable sentry console instrumentations.
- *
- * @param callback The function to run against the original `console` messages
- * @returns The results of the callback
- */
- function consoleSandbox(callback) {
- if (!('console' in GLOBAL_OBJ)) {
- return callback();
- }
- const console = GLOBAL_OBJ.console ;
- const wrappedFuncs = {};
- const wrappedLevels = Object.keys(originalConsoleMethods) ;
- // Restore all wrapped console methods
- wrappedLevels.forEach(level => {
- const originalConsoleMethod = originalConsoleMethods[level] ;
- wrappedFuncs[level] = console[level] ;
- console[level] = originalConsoleMethod;
- });
- try {
- return callback();
- } finally {
- // Revert restoration to wrapped state
- wrappedLevels.forEach(level => {
- console[level] = wrappedFuncs[level] ;
- });
- }
- }
- function makeLogger() {
- let enabled = false;
- const logger = {
- enable: () => {
- enabled = true;
- },
- disable: () => {
- enabled = false;
- },
- isEnabled: () => enabled,
- };
- if (DEBUG_BUILD) {
- CONSOLE_LEVELS.forEach(name => {
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- logger[name] = (...args) => {
- if (enabled) {
- consoleSandbox(() => {
- GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);
- });
- }
- };
- });
- } else {
- CONSOLE_LEVELS.forEach(name => {
- logger[name] = () => undefined;
- });
- }
- return logger ;
- }
- const logger = makeLogger();
- export { CONSOLE_LEVELS, consoleSandbox, logger, originalConsoleMethods };
- //# sourceMappingURL=logger.js.map
|