From 63dd9b84af8d0d255d069deaa839c25a4ccbff1b Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Thu, 28 Aug 2025 16:20:57 -0400 Subject: [PATCH] fix(core): Only set templates if parameters exist --- packages/core/src/logs/exports.ts | 4 +++- packages/core/test/lib/logs/exports.test.ts | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/core/src/logs/exports.ts b/packages/core/src/logs/exports.ts index 79dfedf4ec87..1a503fdb94ed 100644 --- a/packages/core/src/logs/exports.ts +++ b/packages/core/src/logs/exports.ts @@ -153,7 +153,9 @@ export function _INTERNAL_captureLog( const beforeLogMessage = beforeLog.message; if (isParameterizedString(beforeLogMessage)) { const { __sentry_template_string__, __sentry_template_values__ = [] } = beforeLogMessage; - processedLogAttributes['sentry.message.template'] = __sentry_template_string__; + if (__sentry_template_values__?.length) { + processedLogAttributes['sentry.message.template'] = __sentry_template_string__; + } __sentry_template_values__.forEach((param, index) => { processedLogAttributes[`sentry.message.parameter.${index}`] = param; }); diff --git a/packages/core/test/lib/logs/exports.test.ts b/packages/core/test/lib/logs/exports.test.ts index 4fd01a16a304..c3369784c34a 100644 --- a/packages/core/test/lib/logs/exports.test.ts +++ b/packages/core/test/lib/logs/exports.test.ts @@ -281,6 +281,16 @@ describe('_INTERNAL_captureLog', () => { }); }); + it('does not set the template attribute if there are no parameters', () => { + const options = getDefaultTestClientOptions({ dsn: PUBLIC_DSN, enableLogs: true }); + const client = new TestClient(options); + + _INTERNAL_captureLog({ level: 'debug', message: fmt`User logged in` }, client, undefined); + + const logAttributes = _INTERNAL_getLogBuffer(client)?.[0]?.attributes; + expect(logAttributes).toEqual({}); + }); + it('processes logs through beforeSendLog when provided', () => { const beforeSendLog = vi.fn().mockImplementation(log => ({ ...log,