diff --git a/packages/logs/src/domain/configuration.spec.ts b/packages/logs/src/domain/configuration.spec.ts index 557b0240cf..b4872220a3 100644 --- a/packages/logs/src/domain/configuration.spec.ts +++ b/packages/logs/src/domain/configuration.spec.ts @@ -57,19 +57,24 @@ describe('validateAndBuildLogsConfiguration', () => { }) describe('forwardConsoleLogs', () => { - it('contains "error" when forwardErrorsToLogs is enabled', () => { + it('does not contain "error" when forwardConsoleLogs is disabled and forwardErrorsToLogs is explicitly enabled', () => { expect( validateAndBuildLogsConfiguration({ ...DEFAULT_INIT_CONFIGURATION, forwardErrorsToLogs: true })! .forwardConsoleLogs - ).toEqual(['error']) + ).not.toContain('error') + }) + + it('does not contain "error" when forwardConsoleLogs is disabled and forwardErrorsToLogs is omitted', () => { + expect(validateAndBuildLogsConfiguration({ ...DEFAULT_INIT_CONFIGURATION })!.forwardConsoleLogs).not.toContain( + 'error' + ) }) - it('contains "error" once when both forwardErrorsToLogs and forwardConsoleLogs are enabled', () => { + it('contains "error" when forwardConsoleLogs contains "error"', () => { expect( validateAndBuildLogsConfiguration({ ...DEFAULT_INIT_CONFIGURATION, forwardConsoleLogs: ['error'], - forwardErrorsToLogs: true, })!.forwardConsoleLogs ).toEqual(['error']) }) diff --git a/packages/logs/src/domain/configuration.ts b/packages/logs/src/domain/configuration.ts index f4c6c462f7..156a2a3bba 100644 --- a/packages/logs/src/domain/configuration.ts +++ b/packages/logs/src/domain/configuration.ts @@ -48,10 +48,13 @@ export interface LogsInitConfiguration extends InitConfiguration { beforeSend?: LogsBeforeSend | undefined /** - * Forward console.error logs, uncaught exceptions and network errors to Datadog. + * Forward uncaught exceptions and network errors to Datadog. + * + * To capture `console.error` calls, use {@link forwardConsoleLogs} with `"error"` (or `"all"`). * * @category Data Collection * @defaultValue true + * @see forwardConsoleLogs */ forwardErrorsToLogs?: boolean | undefined @@ -115,10 +118,6 @@ export function validateAndBuildLogsConfiguration( return } - if (initConfiguration.forwardErrorsToLogs && !forwardConsoleLogs.includes(ConsoleApiName.error)) { - forwardConsoleLogs.push(ConsoleApiName.error) - } - return { forwardErrorsToLogs: initConfiguration.forwardErrorsToLogs !== false, forwardConsoleLogs, diff --git a/packages/logs/src/domain/console/consoleCollection.spec.ts b/packages/logs/src/domain/console/consoleCollection.spec.ts index dcc7c7892a..7a01916366 100644 --- a/packages/logs/src/domain/console/consoleCollection.spec.ts +++ b/packages/logs/src/domain/console/consoleCollection.spec.ts @@ -61,7 +61,7 @@ describe('console collection', () => { it('console error should have an error object defined', () => { ;({ stop: stopConsoleCollection } = startConsoleCollection( - validateAndBuildLogsConfiguration({ ...initConfiguration, forwardErrorsToLogs: true })!, + validateAndBuildLogsConfiguration({ ...initConfiguration, forwardConsoleLogs: ['error'] })!, lifeCycle )) @@ -80,7 +80,7 @@ describe('console collection', () => { it('should retrieve fingerprint from console error', () => { ;({ stop: stopConsoleCollection } = startConsoleCollection( - validateAndBuildLogsConfiguration({ ...initConfiguration, forwardErrorsToLogs: true })!, + validateAndBuildLogsConfiguration({ ...initConfiguration, forwardConsoleLogs: ['error'] })!, lifeCycle )) interface DatadogError extends Error { @@ -104,7 +104,7 @@ describe('console collection', () => { it('should retrieve dd_context from console', () => { ;({ stop: stopConsoleCollection } = startConsoleCollection( - validateAndBuildLogsConfiguration({ ...initConfiguration, forwardErrorsToLogs: true })!, + validateAndBuildLogsConfiguration({ ...initConfiguration, forwardConsoleLogs: ['error'] })!, lifeCycle )) interface DatadogError extends Error { @@ -121,7 +121,7 @@ describe('console collection', () => { it('should retrieve causes from console error', () => { ;({ stop: stopConsoleCollection } = startConsoleCollection( - validateAndBuildLogsConfiguration({ ...initConfiguration, forwardErrorsToLogs: true })!, + validateAndBuildLogsConfiguration({ ...initConfiguration, forwardConsoleLogs: ['error'] })!, lifeCycle )) const error = new Error('High level error') as ErrorWithCause diff --git a/test/e2e/scenario/logs.scenario.ts b/test/e2e/scenario/logs.scenario.ts index 30e891444d..d4544d7ca7 100644 --- a/test/e2e/scenario/logs.scenario.ts +++ b/test/e2e/scenario/logs.scenario.ts @@ -101,8 +101,8 @@ test.describe('logs', () => { }) }) - createTest('send console errors') - .withLogs({ forwardErrorsToLogs: true }) + createTest('send console errors with forwardConsoleLogs set to ["error"]') + .withLogs({ forwardConsoleLogs: ['error'] }) .run(async ({ intakeRegistry, flushEvents, page, withBrowserLogs }) => { await page.evaluate(() => { console.error('oh snap')