From 9f8bed9e20cf6b9366c4a6440973cab950a4b023 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Fri, 11 Jul 2025 11:45:37 -0400 Subject: [PATCH] fix(core): Wrap `beforeSendLog` in `consoleSandbox` --- packages/core/src/logs/exports.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/core/src/logs/exports.ts b/packages/core/src/logs/exports.ts index 8d8a2a292df8..479c138b791f 100644 --- a/packages/core/src/logs/exports.ts +++ b/packages/core/src/logs/exports.ts @@ -6,7 +6,7 @@ import type { Scope, ScopeData } from '../scope'; import type { Log, SerializedLog, SerializedLogAttributeValue } from '../types-hoist/log'; import { mergeScopeData } from '../utils/applyScopeDataToEvent'; import { isParameterizedString } from '../utils/is'; -import { debug } from '../utils/logger'; +import { consoleSandbox, debug } from '../utils/logger'; import { _getSpanForScope } from '../utils/spanOnScope'; import { timestampInSeconds } from '../utils/time'; import { GLOBAL_OBJ } from '../utils/worldwide'; @@ -169,7 +169,8 @@ export function _INTERNAL_captureLog( client.emit('beforeCaptureLog', processedLog); - const log = beforeSendLog ? beforeSendLog(processedLog) : processedLog; + // We need to wrap this in `consoleSandbox` to avoid recursive calls to `beforeSendLog` + const log = beforeSendLog ? consoleSandbox(() => beforeSendLog(processedLog)) : processedLog; if (!log) { client.recordDroppedEvent('before_send', 'log_item', 1); DEBUG_BUILD && debug.warn('beforeSendLog returned null, log will not be captured.');