Skip to content

Commit 5e90e01

Browse files
committed
feat(core): Add logger to core and allow scope to be passed log methods
1 parent d039640 commit 5e90e01

File tree

16 files changed

+285
-499
lines changed

16 files changed

+285
-499
lines changed

packages/browser/src/index.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
import { feedbackAsyncIntegration } from './feedbackAsync';
22
import { feedbackSyncIntegration } from './feedbackSync';
3-
import * as logger from './log';
43

54
export * from './exports';
65

7-
export { logger };
8-
96
export { reportingObserverIntegration } from './integrations/reportingobserver';
107
export { httpClientIntegration } from './integrations/httpclient';
118
export { contextLinesIntegration } from './integrations/contextlines';
@@ -63,6 +60,7 @@ export {
6360
zodErrorsIntegration,
6461
thirdPartyErrorFilterIntegration,
6562
featureFlagsIntegration,
63+
logger,
6664
} from '@sentry/core';
6765
export type { Span, FeatureFlagsIntegration } from '@sentry/core';
6866
export { makeBrowserOfflineTransport } from './transports/offline';

packages/browser/test/client.test.ts

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*/
44

55
import * as sentryCore from '@sentry/core';
6+
import { Scope } from '@sentry/core';
67
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
78
import { applyDefaultOptions, BrowserClient } from '../src/client';
89
import { WINDOW } from '../src/helpers';
@@ -30,10 +31,12 @@ describe('BrowserClient', () => {
3031
sendClientReports: true,
3132
}),
3233
);
34+
const scope = new Scope();
35+
scope.setClient(client);
3336

3437
// Add some logs
35-
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 1' }, client);
36-
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 2' }, client);
38+
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 1' }, scope);
39+
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 2' }, scope);
3740

3841
// Simulate visibility change to hidden
3942
if (WINDOW.document) {
@@ -58,9 +61,12 @@ describe('BrowserClient', () => {
5861
it('flushes logs when page visibility changes to hidden', () => {
5962
const flushOutcomesSpy = vi.spyOn(client as any, '_flushOutcomes');
6063

64+
const scope = new Scope();
65+
scope.setClient(client);
66+
6167
// Add some logs
62-
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 1' }, client);
63-
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 2' }, client);
68+
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 1' }, scope);
69+
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 2' }, scope);
6470

6571
// Simulate visibility change to hidden
6672
if (WINDOW.document) {
@@ -73,9 +79,12 @@ describe('BrowserClient', () => {
7379
});
7480

7581
it('flushes logs on flush event', () => {
82+
const scope = new Scope();
83+
scope.setClient(client);
84+
7685
// Add some logs
77-
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 1' }, client);
78-
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 2' }, client);
86+
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 1' }, scope);
87+
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 2' }, scope);
7988

8089
// Trigger flush event
8190
client.emit('flush');
@@ -84,8 +93,11 @@ describe('BrowserClient', () => {
8493
});
8594

8695
it('flushes logs after idle timeout', () => {
96+
const scope = new Scope();
97+
scope.setClient(client);
98+
8799
// Add a log which will trigger afterCaptureLog event
88-
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log' }, client);
100+
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log' }, scope);
89101

90102
// Fast forward the idle timeout
91103
vi.advanceTimersByTime(DEFAULT_FLUSH_INTERVAL);
@@ -94,14 +106,17 @@ describe('BrowserClient', () => {
94106
});
95107

96108
it('resets idle timeout when new logs are captured', () => {
109+
const scope = new Scope();
110+
scope.setClient(client);
111+
97112
// Add initial log
98-
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 1' }, client);
113+
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 1' }, scope);
99114

100115
// Fast forward part of the idle timeout
101116
vi.advanceTimersByTime(DEFAULT_FLUSH_INTERVAL / 2);
102117

103118
// Add another log which should reset the timeout
104-
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 2' }, client);
119+
sentryCore._INTERNAL_captureLog({ level: 'info', message: 'test log 2' }, scope);
105120

106121
// Fast forward the remaining time
107122
vi.advanceTimersByTime(DEFAULT_FLUSH_INTERVAL / 2);

packages/browser/test/log.test.ts

Lines changed: 0 additions & 150 deletions
This file was deleted.

packages/cloudflare/src/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,9 @@ export {
9696
consoleLoggingIntegration,
9797
createConsolaReporter,
9898
featureFlagsIntegration,
99+
logger,
99100
} from '@sentry/core';
100101

101-
export * as logger from './logs/exports';
102-
103102
export { withSentry } from './handler';
104103
export { instrumentDurableObjectWithSentry } from './durableobject';
105104
export { sentryPagesPlugin } from './pages-plugin';

0 commit comments

Comments
 (0)