Skip to content

Commit 9376f7f

Browse files
committed
more changes
1 parent be7f55b commit 9376f7f

File tree

5 files changed

+159
-27
lines changed

5 files changed

+159
-27
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,21 @@
1-
Sentry.logger.info('test info');
1+
Sentry.logger.trace('test trace');
22
Sentry.logger.debug('test debug');
3+
Sentry.logger.info('test info');
34
Sentry.logger.warn('test warn');
45
Sentry.logger.error('test error');
56
Sentry.logger.fatal('test fatal');
67
Sentry.logger.critical('test critical');
8+
9+
const formattedMessage = (message, ...args) => {
10+
return Sentry.logger.fmt`test ${message} ${args}`;
11+
};
12+
13+
Sentry.logger.trace(formattedMessage('trace', 'stringArg', 123));
14+
Sentry.logger.debug(formattedMessage('debug', 'stringArg', 123));
15+
Sentry.logger.info(formattedMessage('info', 'stringArg', 123));
16+
Sentry.logger.warn(formattedMessage('warn', 'stringArg', 123));
17+
Sentry.logger.error(formattedMessage('error', 'stringArg', 123));
18+
Sentry.logger.fatal(formattedMessage('fatal', 'stringArg', 123));
19+
Sentry.logger.critical(formattedMessage('critical', 'stringArg', 123));
20+
21+
Sentry.flush();
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,148 @@
11
import { expect } from '@playwright/test';
2-
import type { SerializedOtelLog } from '@sentry/core';
2+
import type { OtelLogEnvelope } from '@sentry/core';
33

44
import { sentryTest } from '../../../utils/fixtures';
5-
import { getFirstSentryEnvelopeRequest } from '../../../utils/helpers';
5+
import { getFirstSentryEnvelopeRequest, properFullEnvelopeRequestParser } from '../../../utils/helpers';
66

77
sentryTest('should capture all logging methods', async ({ getLocalTestUrl, page }) => {
88
const url = await getLocalTestUrl({ testDir: __dirname });
99

1010
// Get all events from the page
11-
const events = await Promise.all([
12-
getFirstSentryEnvelopeRequest<SerializedOtelLog>(page, url),
13-
getFirstSentryEnvelopeRequest<SerializedOtelLog>(page, url),
14-
getFirstSentryEnvelopeRequest<SerializedOtelLog>(page, url),
15-
getFirstSentryEnvelopeRequest<SerializedOtelLog>(page, url),
16-
getFirstSentryEnvelopeRequest<SerializedOtelLog>(page, url),
17-
getFirstSentryEnvelopeRequest<SerializedOtelLog>(page, url),
11+
const event = await getFirstSentryEnvelopeRequest<OtelLogEnvelope>(page, url, properFullEnvelopeRequestParser);
12+
const [envelopeHeader, envelopeItems] = event;
13+
14+
expect(envelopeHeader).toEqual({ sdk: { name: 'sentry.javascript.browser', version: expect.any(String) } });
15+
16+
expect(envelopeItems.length).toBe(14);
17+
18+
expect(envelopeItems[0]).toEqual([
19+
{
20+
type: 'otel_log',
21+
},
22+
{
23+
severityText: 'trace',
24+
body: { stringValue: 'test trace' },
25+
attributes: [],
26+
timeUnixNano: expect.any(String),
27+
traceId: expect.any(String),
28+
severityNumber: 1,
29+
},
1830
]);
1931

20-
// Verify each log level
21-
expect(events[0].severityText).toBe('info');
22-
expect(events[0].body.stringValue).toBe('test info');
32+
expect(envelopeItems[1]).toEqual([
33+
{
34+
type: 'otel_log',
35+
},
36+
{
37+
severityText: 'debug',
38+
body: { stringValue: 'test debug' },
39+
attributes: [],
40+
timeUnixNano: expect.any(String),
41+
traceId: expect.any(String),
42+
severityNumber: 5,
43+
},
44+
]);
2345

24-
expect(events[1].severityText).toBe('debug');
25-
expect(events[1].body.stringValue).toBe('test debug');
46+
expect(envelopeItems[2]).toEqual([
47+
{
48+
type: 'otel_log',
49+
},
50+
{
51+
severityText: 'info',
52+
body: { stringValue: 'test info' },
53+
attributes: [],
54+
timeUnixNano: expect.any(String),
55+
traceId: expect.any(String),
56+
severityNumber: 1,
57+
},
58+
]);
2659

27-
expect(events[2].severityText).toBe('warning');
28-
expect(events[2].body.stringValue).toBe('test warn');
60+
expect(envelopeItems[3]).toEqual([
61+
{
62+
type: 'otel_log',
63+
},
64+
{
65+
severityText: 'warn',
66+
body: { stringValue: 'test warn' },
67+
attributes: [],
68+
timeUnixNano: expect.any(String),
69+
traceId: expect.any(String),
70+
severityNumber: 1,
71+
},
72+
]);
2973

30-
expect(events[3].severityText).toBe('error');
31-
expect(events[3].body.stringValue).toBe('test error');
74+
expect(envelopeItems[4]).toEqual([
75+
{
76+
type: 'otel_log',
77+
},
78+
{
79+
severityText: 'error',
80+
body: { stringValue: 'test error' },
81+
attributes: [],
82+
timeUnixNano: expect.any(String),
83+
traceId: expect.any(String),
84+
severityNumber: 1,
85+
},
86+
]);
3287

33-
expect(events[4].severityText).toBe('fatal');
34-
expect(events[4].body.stringValue).toBe('test fatal');
88+
expect(envelopeItems[5]).toEqual([
89+
{
90+
type: 'otel_log',
91+
},
92+
{
93+
severityText: 'fatal',
94+
body: { stringValue: 'test fatal' },
95+
attributes: [],
96+
timeUnixNano: expect.any(String),
97+
traceId: expect.any(String),
98+
severityNumber: 1,
99+
},
100+
]);
35101

36-
expect(events[5].severityText).toBe('critical');
37-
expect(events[5].body.stringValue).toBe('test critical');
102+
expect(envelopeItems[6]).toEqual([
103+
{
104+
type: 'otel_log',
105+
},
106+
{
107+
severityText: 'critical',
108+
body: { stringValue: 'test critical' },
109+
attributes: [],
110+
timeUnixNano: expect.any(String),
111+
traceId: expect.any(String),
112+
severityNumber: 1,
113+
},
114+
]);
115+
116+
expect(envelopeItems[7]).toEqual([
117+
{
118+
type: 'otel_log',
119+
},
120+
{
121+
severityText: 'trace',
122+
body: { stringValue: 'test trace stringArg 123' },
123+
attributes: [
124+
{
125+
key: 'sentry.message.template',
126+
value: {
127+
stringValue: 'test %s %s',
128+
},
129+
},
130+
{
131+
key: 'sentry.message.params.0',
132+
value: {
133+
stringValue: 'stringArg',
134+
},
135+
},
136+
{
137+
key: 'sentry.message.params.1',
138+
value: {
139+
doubleValue: 123,
140+
},
141+
},
142+
],
143+
timeUnixNano: expect.any(String),
144+
traceId: expect.any(String),
145+
severityNumber: 1,
146+
},
147+
]);
38148
});

dev-packages/browser-integration-tests/utils/helpers.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export const envelopeUrlRegex = /\.sentry\.io\/api\/\d+\/envelope\//;
1616
export const envelopeParser = (request: Request | null): unknown[] => {
1717
// https://develop.sentry.dev/sdk/envelopes/
1818
const envelope = request?.postData() || '';
19+
console.log(envelope);
1920

2021
// Third row of the envelop is the event payload.
2122
return envelope.split('\n').map(line => {
@@ -135,10 +136,13 @@ export const countEnvelopes = async (
135136

136137
page.on('request', requestHandler);
137138

138-
setTimeout(() => {
139-
page.off('request', requestHandler);
140-
resolve(reqCount);
141-
}, options?.timeout || 1000);
139+
setTimeout(
140+
() => {
141+
page.off('request', requestHandler);
142+
resolve(reqCount);
143+
},
144+
options?.timeout || 1000,
145+
);
142146
});
143147

144148
if (options?.url) {

packages/core/src/logs/constants.ts

+1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ export const SEVERITY_TEXT_TO_SEVERITY_NUMBER: Partial<Record<LogSeverityLevel,
1212
warn: 13,
1313
error: 17,
1414
fatal: 21,
15+
critical: 25,
1516
};

packages/core/src/types-hoist/index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ export type {
4949
ProfileChunkItem,
5050
SpanEnvelope,
5151
SpanItem,
52+
OtelLogEnvelope,
53+
OtelLogItem,
5254
} from './envelope';
5355
export type { ExtendedError } from './error';
5456
export type { Event, EventHint, EventType, ErrorEvent, TransactionEvent } from './event';

0 commit comments

Comments
 (0)