@sentry/browser
Advanced tools
Changelog
9.10.0
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.
Changelog
9.6.1
Changelog
9.6.0
feat(tanstackstart): Add @sentry/tanstackstart-react
package and make @sentry/tanstackstart
package a utility package (#15629)
Since TanStack Start is supposed to be a generic framework that supports libraries like React and Solid, the @sentry/tanstackstart
SDK package was renamed to @sentry/tanstackstart-react
to reflect that the SDK is specifically intended to be used for React TanStack Start applications.
Note that the TanStack Start SDK is still in alpha status and may be subject to breaking changes in non-major package updates.
fill
only patches functions (#15632)pageExtensions
when looking for instrumentation file (#15701)options
(#15610)Work in this release was contributed by @angelikatyborska and @nwalters512. Thank you for your contributions!
Changelog
9.5.0
We found some issues with the new feedback screenshot annotation where screenshots are not being generated properly. Due to this issue, we are reverting the feature.
4.34.9
(#15589)@sentry/remix/cloudflare
(#15599)Work in this release was contributed by @msurdi-a8c, @namoscato, and @rileyg98. Thank you for your contributions!