Skip to content

Commit 510912c

Browse files
committed
ref(core): Log debug message when capturing error events
1 parent e714e3d commit 510912c

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

packages/core/src/baseclient.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -713,6 +713,16 @@ export abstract class BaseClient<O extends ClientOptions> implements Client<O> {
713713
* @param scope
714714
*/
715715
protected _captureEvent(event: Event, hint: EventHint = {}, scope?: Scope): PromiseLike<string | undefined> {
716+
if (DEBUG_BUILD && isErrorEvent(event)) {
717+
logger.log(
718+
`Captured error event \`${
719+
(event.exception && event.exception.values && event.exception.values[0] && event.exception.values[0].value) ||
720+
event.message ||
721+
'<unknown>'
722+
}\``,
723+
);
724+
}
725+
716726
return this._processEvent(event, hint, scope).then(
717727
finalEvent => {
718728
return finalEvent.event_id;

packages/core/test/lib/baseclient.test.ts

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,22 @@ describe('BaseClient', () => {
366366
// `captureException` should bail right away this second time around and not get as far as calling this again
367367
expect(clientEventFromException).toHaveBeenCalledTimes(1);
368368
});
369+
370+
test('captures logger message', () => {
371+
const logSpy = jest.spyOn(loggerModule.logger, 'log').mockImplementation(() => undefined);
372+
373+
const options = getDefaultTestClientOptions({ dsn: PUBLIC_DSN });
374+
const client = new TestClient(options);
375+
376+
client.captureException(new Error('test error here'));
377+
client.captureException({});
378+
379+
expect(logSpy).toHaveBeenCalledTimes(2);
380+
expect(logSpy).toBeCalledWith('Captured error event `test error here`');
381+
expect(logSpy).toBeCalledWith('Captured error event `<unknown>`');
382+
383+
logSpy.mockRestore();
384+
});
369385
});
370386

371387
describe('captureMessage', () => {
@@ -442,6 +458,20 @@ describe('BaseClient', () => {
442458
}),
443459
);
444460
});
461+
462+
test('captures logger message', () => {
463+
const logSpy = jest.spyOn(loggerModule.logger, 'log').mockImplementation(() => undefined);
464+
465+
const options = getDefaultTestClientOptions({ dsn: PUBLIC_DSN });
466+
const client = new TestClient(options);
467+
468+
client.captureMessage('test error here');
469+
470+
expect(logSpy).toHaveBeenCalledTimes(1);
471+
expect(logSpy).toBeCalledWith('Captured error event `test error here`');
472+
473+
logSpy.mockRestore();
474+
});
445475
});
446476

447477
describe('captureEvent() / prepareEvent()', () => {
@@ -1651,6 +1681,22 @@ describe('BaseClient', () => {
16511681
message: 'hello',
16521682
});
16531683
});
1684+
1685+
test('captures logger message', () => {
1686+
const logSpy = jest.spyOn(loggerModule.logger, 'log').mockImplementation(() => undefined);
1687+
1688+
const options = getDefaultTestClientOptions({ dsn: PUBLIC_DSN });
1689+
const client = new TestClient(options);
1690+
1691+
client.captureEvent({ message: 'hello' });
1692+
// transactions are ignored and not logged
1693+
client.captureEvent({ type: 'transaction', message: 'hello 2' });
1694+
1695+
expect(logSpy).toHaveBeenCalledTimes(1);
1696+
expect(logSpy).toBeCalledWith('Captured error event `hello`');
1697+
1698+
logSpy.mockRestore();
1699+
});
16541700
});
16551701

16561702
describe('integrations', () => {

0 commit comments

Comments
 (0)