feat: Add support for logs
beforeSendLog (#15814)All JavaScript SDKs other than @sentry/cloudflare and @sentry/deno now support sending logs via dedicated methods as part of Sentry's upcoming logging product.
Logging is gated by an experimental option, _experiments.enableLogs.
Sentry.init({
dsn: 'PUBLIC_DSN',
// `enableLogs` must be set to true to use the logging features
_experiments: { enableLogs: true },
});
const { trace, debug, info, warn, error, fatal, fmt } = Sentry.logger;
trace('Starting database connection', { database: 'users' });
debug('Cache miss for user', { userId: 123 });
error('Failed to process payment', { orderId: 'order_123', amount: 99.99 });
fatal('Database connection pool exhausted', { database: 'users', activeConnections: 100 });
// Structured logging via the `fmt` helper function. When you use `fmt`, the string template and parameters are sent separately so they can be queried independently in Sentry.
info(fmt(`Updated profile for user ${userId}`));
warn(fmt(`Rate limit approaching for endpoint ${endpoint}. Requests: ${requests}, Limit: ${limit}`));
With server-side SDKs like @sentry/node, @sentry/bun or server-side of @sentry/nextjs or @sentry/sveltekit, you can do structured logging without needing the fmt helper function.
const { info, warn } = Sentry.logger;
info('User %s logged in successfully', [123]);
warn('Failed to load user %s data', [123], { errorCode: 404 });
To filter logs, or update them before they are sent to Sentry, you can use the _experiments.beforeSendLog option.
feat(browser): Add diagnoseSdkConnectivity() function to programmatically detect possible connectivity issues (#15821)
The diagnoseSdkConnectivity() function can be used to programmatically detect possible connectivity issues with the Sentry SDK.
const result = await Sentry.diagnoseSdkConnectivity();
The result will be an object with the following properties:
"no-client-active": There was no active client when the function was called. This possibly means that the SDK was not initialized yet."sentry-unreachable": The Sentry SaaS servers were not reachable. This likely means that there is an ad blocker active on the page or that there are other connection issues.undefined: The SDK is working as expected.SDK Tracing Performance Improvements for Node SDKs
dropUndefinedKeys (#15796)dropUndefinedKeys for spanToJSON calls (#15792)SentryError for PromiseBuffer control flow (#15822)dropUndefinedKeys in SpanExporter (#15794)SentryError for event processing control flow (#15823)dropUndefinedKeys in Node SDK init (#15797)We've been hard at work making performance improvements to the Sentry Node SDKs (@sentry/node, @sentry/aws-serverless, @sentry/nestjs, etc.). We've seen that upgrading from 9.7.0 to 9.10.0 leads to 30-40% improvement in request latency for HTTP web-server applications that use tracing with high sample rates. Non web-server applications and non-tracing applications will see smaller improvements.
rrweb to 2.35.0 (#15825)3.2.3 (#15829)| Path | Size |
|---|---|
| @sentry/browser | 23.08 KB |
| @sentry/browser - with treeshaking flags | 22.88 KB |
| @sentry/browser (incl. Tracing) | 36.49 KB |
| @sentry/browser (incl. Tracing, Replay) | 73.65 KB |
| @sentry/browser (incl. Tracing, Replay) - with treeshaking flags | 67 KB |
| @sentry/browser (incl. Tracing, Replay with Canvas) | 78.3 KB |
| @sentry/browser (incl. Tracing, Replay, Feedback) | 90.87 KB |
| @sentry/browser (incl. Feedback) | 40.21 KB |
| @sentry/browser (incl. sendFeedback) | 27.71 KB |
| @sentry/browser (incl. FeedbackAsync) | 32.5 KB |
| @sentry/react | 24.86 KB |
| @sentry/react (incl. Tracing) | 38.39 KB |
| @sentry/vue | 27.3 KB |
| @sentry/vue (incl. Tracing) | 38.18 KB |
| @sentry/svelte | 23.12 KB |
| CDN Bundle | 24.33 KB |
| CDN Bundle (incl. Tracing) | 36.51 KB |
| CDN Bundle (incl. Tracing, Replay) | 71.53 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) | 76.71 KB |
| CDN Bundle - uncompressed | 70.93 KB |
| CDN Bundle (incl. Tracing) - uncompressed | 108.11 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed | 219.4 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed | 231.97 KB |
| @sentry/nextjs (client) | 39.68 KB |
| @sentry/sveltekit (client) | 36.92 KB |
| @sentry/node | 142.91 KB |
| @sentry/node - without tracing | 96.12 KB |
| @sentry/aws-serverless | 120.46 KB |
Fetched March 31, 2026