- Fixed ArgumentNullException in FormRequestPayloadExtractor when handling invalid form data on ASP.NET (#3734)
- Bump Cocoa SDK from v8.36.0 to v8.39.0 (#3727)
- Bump Native SDK from v0.7.11 to v0.7.12 (#3731)
- Bump Java SDK from v7.16.0 to v7.17.0 (#3749)
- Limited experimental support for Session Replay Recording on Android (#3552)
- When using OTel and ASP.NET Core the SDK could try to process OTel spans after the SDK had been closed (#3726)
- Android - allow logcat attachments to be previewed in Sentry (#3711)
- Added a
SetBeforeScreenshotCapture
callback to the options: allowing the user to set an action before the screenshot is taken (#3661) - Make
Sentry.AspNetCore.Blazor.WebAssembly
generally available. (#3674)
- Events from NDK on Android will report sdk.name
sentry.native.android.dotnet
(#3682)
- Bump Java SDK from v7.14.0 to v7.16.0 (#3670, #3707)
- Bump CLI from v2.37.0 to v2.38.1 (#3702, #3720)
- Bumped
System.Text.Json
from v6.0.8 to v6.0.10 (#3704) - Bump Native SDK from v0.7.10 to v0.7.11 (#3715)
- Fixed "Failed to persist session" error on iOS (#3655)
If you are using Xcode 16.0, you will need to update the SDK to version 4.12.0
or later.
If you are still using Xcode 15.4 or earlier, you need to continue to use version 4.11.0
or earlier.
Using Xcode 16 to build .NET applications targeting iOS and Mac Catalyst requires .NET workload for iOS SDK version 18.0.8303. We built the SDK version 4.12.0 using Xcode 16 in order to support this scenario. That, unfortunately, breaks folks using older version of Xcode.
As such, if you are using SDK version 4.12.x
and targeting iOS or Mac Catalyst, you will need to install and use Xcode 16 and workload iOS SDK 18.0.8303
Note that .NET 9 will also support Xcode 16, when it is released next month (Nov 2024).
- The
SentrySdk.Metrics
module is deprecated and will be removed in the next major release. Sentry will reject all metrics sent after October 7, 2024. Learn more: https://sentry.zendesk.com/hc/en-us/articles/26369339769883-Upcoming-API-Changes-to-Metrics (#3619)
- Fixed duplicate key exception for Hangfire jobs with AutomaticRetry (#3631)
- Added a flag to options
DisableFileWrite
to allow users to opt-out of all file writing operations. Note that toggling this will affect features such as offline caching and auto-session tracking and release health as these rely on some file persistency (#3614, #3641)
- Bump Native SDK from v0.7.9 to v0.7.10 (#3623)
- Bump CLI from v2.36.1 to v2.36.5 (#3624, #3634, #3642, #3644)
- Update Perfview/TraceEvent to e343a0c (#3492)
- All exceptions are now added as breadcrumbs on future events. Previously this was only the case for exceptions captured via the
Sentry.SeriLog
orSentry.Extensions.Logging
integrations. (#3584)
- On mobile devices, the SDK no longer throws a
FormatException
forProcessorFrequency
when trying to report native events (#3541) - Add missing org parameter to the CLI release operations (#3600)
- When the Sentry SDK is disabled,
SentrySdk.StartTransaction()
now returns aNoOpTransaction
, which avoids unnecessary memory allocations (#3581)
- Bump Cocoa SDK from v8.35.0 to v8.36.0 (#3570, #3575)
- Bump CLI from v2.33.1 to v2.36.1 (#3578, #3599, #3603, #3606)
- Bump Native SDK from v0.7.8 to v0.7.9 (#3577)
- fix: Prevent deadlock in
Hub.Dispose
(#3539) by @bitsandfoxes - build(deps): bump github/codeql-action from 3.26.0 to 3.26.2 (#3543) by @dependabot
- Resolved a potential deadlock during SDK shutdown (#3539)
- Unfinished spans are now correctly stored and retrieved by the CachingTransport (#3533)
- Users can now automatically create releases and associated commits via sentry-cli and MSBuild properties (#3462)
Sentry.AspNetCore.Blazor.WebAssembly
now targets .NET 8 specifically, allowing for proper dependency resolution (#3501)
- When targeting
WPF
,WinForms
orAvalonia
withPublishAot
enabled, the SDK no longers throws aDllNotFoundException
trying to initializesentry-native
(#3411) Unable to load DLL sentry-native or one of its dependencies - On mobile devices, the SDK no longer throws a
FormatException
when trying to report native events (#3485) - Race condition in
SentryMessageHandler
(#3477) - Decrease runtime diagnostics circular buffer when profiling, reducing memory usage (#3491)
- The InstallationId is now resolved only once per application execution and any issues are logged as warnings instead of errors (#3529)
- DisplayInfo now captured correctly on iOS and Mac Catalyst on non-UI threads (#3521)
- Bump CLI from v2.32.1 to v2.33.1 (#3489, #3497, #3520)
- Bump Java SDK from v7.11.0 to v7.14.0 (#3503, #3532)
- Bump Cocoa SDK from v8.30.0 to v8.32.0 (#3499)
- Bump Native SDK from v0.7.6 to v0.7.8 (#3502, #3527)
- Bump Cocoa SDK from v8.30.0 to v8.33.0 (#3499, #3528)
- Bump Native SDK from v0.7.6 to v0.7.7 (#3502)
- Bump Java SDK from v7.11.0 to v7.13.0 (#3515)
- Fixed envelopes getting stuck in processing when losing network connectivity (#3438)
- Client reports now include dropped spans (#3463)
- Removed SentrySdk.RunAsyncVoid (#3466)
- The SDK no longer fails to create a trace root (#3453)
- Removed
FirstChanceException
workaround for WinUI (#3411)
- Marked SentryUser.Segment as deprecated (#3437)
- Added a new package
Sentry.AspNetCore.Blazor.WebAssembly
. This packages provides you with an extension toWebAssemblyHostBuilder
to allow SDK configuration via the builder pattern. This package gives us an entry point and the ability to extend the SDKs support and out-of-the-box offering. You can follow the progress and leave feedback either (here) for extending the support for Blazor Server or (here) for Blazor WebAssembly support (#3386)
- Debug logs are now visible for MAUI apps in Visual Studio when using Sentry's default DiagnosticLogger (#3373)
- Fixed Monitor duration calculation ([#3420]#3420)
- Fixed null IServiceProvider in anonymous routes with OpenTelemetry (#3401)
- Fixed Trim warnings in Sentry.DiagnosticSource and WinUIUnhandledException integrations (#3410)
- Fixed memory leak when tracing is enabled (#3432)
Scope.User.Id
now correctly defaults to the InstallationId unless it has been set otherwise (#3425)
- Bump CLI from v2.31.2 to v2.32.1 (#3398)
- Bump Native SDK from v0.7.4 to v0.7.6 (#3399, #3418)
- Bump Cocoa SDK from v8.26.0 to v8.30.0 (#3408, #3412, #3430, #3450)
- Bump Java SDK from v7.9.0 to v7.10.0 (#3413)
- SentryOptions.EnableTracing has been marked as Obsolete (#3381)
- The SDK now supports monitor upserting. You can programmatically set up your monitors via the options callback in
SentrySdk.CaptureCheckIn
(#3330) - Added an
SentrySdk.RunAsyncVoid
helper method that lets you capture exceptions fromasync void
methods (#3379)
- P/Invoke warning for GetWindowThreadProcessId no longer shows when using Sentry in UWP applications (#3372)
- Fixed InvalidOperationException when pulling the HttpRequestUrl from Uri's with DangerousDisablePathAndQueryCanonicalization set to true (#3393)
- Update Perfview/TraceEvent to v3.1.10 (patched) (#3382)
- Bump Native SDK from v0.7.2 to v0.7.4 (#3385)
- Bump Cocoa SDK from v8.25.2 to v8.26.0 (#3364)
- Reverted changes to the SentryHttpMessageHandler and SentryGraphQLHttpMessageHandler to automatically create transactions for each request as this could negatively affect users' quota (#3367)
- Fixed SentryHttpMessageHandler and SentryGraphQLHttpMessageHandler not creating spans when there is no active Transaction on the scope (#3360)
- The SDK no longer (wrongly) initializes sentry-native on Blazor WASM builds with
RunAOTCompilation
enabled. (#3363) - HttpClient requests now show on the Requests dashboard in Sentry (#3357)
- Bump Hangfire from v1.8.7 to v1.8.12 (#3361)
- Hints now accept
byte[]
as attachment (#3352) - InApp includes/excludes can now be configured using regular expressions (#3321)
- Fixed memory leak in BackgroundWorker observed when using Sentry with Quartz and MySql (#3355)
- Bump CLI from v2.31.0 to v2.31.2 (#3342, #3345)
- Bump Cocoa SDK from v8.25.0 to v8.25.2 (#3356)
- Bump Java SDK from v7.8.0 to v7.9.0 (#3358)
- Extended the SDK's CheckIn support by adding Release, Environment and Trace ID to the event. CheckIns created via the Hangfire integration now also automatically report their duration (#3320)
- The SDK's performance API now works in conjunction with OpenTelemetry's instrumentation. This means that SentrySpans and OTel spans now show up in the same span-tree. (#3288)
HttpResponse.Content
is no longer disposed by when usingSentryHttpFailedRequestHandler
on .NET Framework, which was causing an ObjectDisposedException when using Sentry with NSwag (#3306)- Fix BackgroundWorker exiting when OperationCanceledException is not from shutdown request (3284)
- Envelopes with large attachments no longer get stuck in the queue when using
CacheDirectoryPath
(#3328)
- Metrics now honor any Rate Limits set in HTTP headers returned by Sentry (#3276)
- Fixed normalization for metric tag values for carriage return, line feed and tab characters (#3281)
- EnableNetworkEventBreadcrumbs can now be set on the Native Android options (#3267)
- Update normalization of metrics keys, tags and values (#3271)
- Fix missing exception StackTraces in some situations (#3215)
- Scopes now get applied to OTEL spans in ASP.NET Core (#3221)
- Fixed InvalidCastException when setting the SampleRate on Android (#3258)
- Fixed MAUI iOS build issue related to
SentryVersionNumber
andSentryVersionString
(#3278)
- Removed
SentryOptionsExtensions
class - all the public methods moved directly toSentryOptions
(#3195)
- Bump CLI from v2.30.0 to v2.31.0 (#3214, #3218, #3242, #3247)
- Bump Native SDK from v0.7.0 to v0.7.2 (#3237, #3256)
- Bump Java SDK from v7.6.0 to v7.7.0 (#3268)
- Dynamic Sampling Context not propagated correctly for HttpClient spans (#3208)
- ASP.NET Core: Blocking call detection. An event with the stack trace of the blocking call will be captured as event. (#2709)
- IMPORTANT: Verify this in test/staging before prod! Blocking calls in hot paths could create a lot of events for your Sentry project.
- Opt-in via
options.CaptureBlockingCalls = true
- Disabled for specific code blocks with
using (new SuppressBlockingDetection())
- Doesn't detect everything. See original Caveats described by Ben Adams.
- Added Crons support via
SentrySdk.CaptureCheckIn
and an integration with Hangfire (#3128) - Common tags set automatically for metrics and metrics summaries are attached to Spans (#3191)
- Removed
ScopeExtensions
class - all the public methods moved directly toScope
(#3186)
- The Sentry Middleware on ASP.NET Core no longer throws an exception after having been initialized multiple times (#3185)
- Empty strings are used instead of underscores to replace invalid metric tag values (#3176)
- Filtered OpenTelemetry spans are garbage collected correctly (#3198)
- Bump Java SDK from v7.3.0 to v7.6.0 (#3164, #3204)
- Bump Cocoa SDK from v8.20.0 to v8.21.0 (#3194)
- Bump CLI from v2.28.6 to v2.30.0 (#3193, #3203)
- Metric unit names are now sanitized correctly. This was preventing some built in metrics from showing in the Sentry dashboard (#3151)
- The Sentry OpenTelemetry integration no longer throws an exception with the SDK disabled (#3156)
- The SDK can be disabled by setting
options.Dsn = "";
By convention, the SDK allows the DSN set tostring.Empty
to be overwritten by the environment. (#3147)
- The SDK now automatically collects metrics coming from
OpenTelemetry.Instrumentation.Runtime
(#3133)
- "No service for type 'Sentry.IHub' has been registered" exception when using OpenTelemetry and initializing Sentry via
SentrySdk.Init
(#3129)
- To resolve conflicting types due to the SDK adding itself to the global usings:
- The class
Sentry.Constants
has been renamed toSentry.SentryConstants
(#3125)
- The class
- To resolve conflicting types due to the SDK adding itself to the global usings:
- To resolve conflicting types due to the SDK adding itself to the global usings:
- The interface
Sentry.ISession
has been renamed toSentry.ISentrySession
(#3110) - The interface
Sentry.IJsonSerializable
has been renamed toSentry.ISentryJsonSerializable
(#3116) - The class
Sentry.Session
has been renamed toSentry.SentrySession
(#3110) - The class
Sentry.Attachment
has been renamed toSentry.SentryAttachment
(#3116) - The class
Sentry.Hint
has been renamed toSentry.SentryHint
(#3116)
- The interface
This major release includes many exciting new features including support for Profiling and Metrics(preview), AOT with Native Crash Reporting, Spotlight, Screenshots on MAUI and much more. Details about these features and other changes are below.
We're dropping support for some of the old target frameworks, please check this GitHub Discussion for details on why.
-
Replace support for .NET Framework 4.6.1 with 4.6.2 (#2786)
.NET Framework 4.6.1 was announced on Nov 30, 2015. And went out of support over a year ago, on Apr 26, 2022.
-
Drop .NET Core 3.1 and .NET 5 support (#2787)
-
Dropped netstandard2.0 support for Sentry.AspNetCore (#2807)
-
Replace support for .NET 6 on mobile (e.g:
net6.0-android
) with .NET 7 (#2624).NET 6 on mobile has been out of support since May 2023 and with .NET 8, it's no longer possible to build .NET 6 Mobile specific targets. For that reason, we're moving the mobile-specific TFMs from
net6.0-platform
tonet7.0-platform
.Mobile apps still work on .NET 6 will pull the
Sentry
.NET 6, which offers the .NET-only features, without native/platform-specific bindings and SDKs. See this ticket for more details. -
MAUI dropped Tizen support (#2734)
If you're using sentry.io
this change does not affect you.
This SDK version is compatible with a self-hosted version of Sentry 22.12.0
or higher. If you are using an older version of self-hosted Sentry (aka on-premise), you will need to upgrade.
- Transaction names for ASP.NET Core are now consistently named
HTTP-VERB /path
(e.g.GET /home
). Previously, the leading forward slash was missing for some endpoints. (#2808) - Setting
SentryOptions.Dsn
tonull
now throwsArgumentNullException
during initialization. (#2655) - Enable
CaptureFailedRequests
by default (#2688) - Added
Sentry
namespace to global usings whenImplicitUsings
is enabled (#3043) If you have conflicts, you can opt out by adding the following to yourcsproj
:
<PropertyGroup>
<SentryImplicitUsings>false</SentryImplicitUsings>
</PropertyGroup>
- Transactions' spans are no longer automatically finished with the status
deadline_exceeded
by the transaction. This is now handled by the Relay.- Customers self hosting Sentry must use verion 22.12.0 or later (#3013)
- The
User.IpAddress
is now set to{{auto}}
by default, even when sendDefaultPII is disabled (#2981)- The "Prevent Storing of IP Addresses" option in the "Security & Privacy" project settings on sentry.io can be used to control this instead
- The
DiagnosticLogger
signature forLogWarning
changed to take theexception
as the first parameter. That way it no longer gets mixed up with the TArgs. (#2987)
If you have compilation errors you can find the affected types or overloads missing in the changelog entries below.
- Class renamed
Sentry.User
toSentry.SentryUser
(#3015) - Class renamed
Sentry.Runtime
toSentry.SentryRuntime
(#3016) - Class renamed
Sentry.Span
toSentry.SentrySpan
(#3021) - Class renamed
Sentry.Transaction
toSentry.SentryTransaction
(#3023) - Rename iOS and MacCatalyst platform-specific options from
Cocoa
toNative
(#2940) - Rename iOS platform-specific options
EnableCocoaSdkTracing
toEnableTracing
(#2940) - Rename Android platform-specific options from
Android
toNative
(#2940) - Rename Android platform-specific options
EnableAndroidSdkTracing
andEnableAndroidSdkBeforeSend
toEnableTracing
andEnableBeforeSend
respectively (#2940) - Rename iOS and MacCatalyst platform-specific options from
iOS
toCocoa
(#2929) ITransaction
has been renamed toITransactionTracer
. You will need to update any references to these interfaces in your code to use the new interface names (#2731, #2870)DebugImage
andDebugMeta
moved toSentry.Protocol
namespace. (#2815)SentryClient.Dispose
is no longer obsolete (#2842)ISentryClient.CaptureEvent
overloads have been replaced by a single method accepting optionalHint
andScope
parameters. You will need to passhint
as a named parameter from code that callsCaptureEvent
without passing ascope
argument. (#2749)TransactionContext
andSpanContext
constructors were updated. If you're constructing instances of these classes, you will need to adjust the order in which you pass parameters to these. (#2694, #2696)- The
DiagnosticLogger
signature forLogError
andLogFatal
changed to take theexception
as the first parameter. That way it no longer gets mixed up with the TArgs. TheDiagnosticLogger
now also receives an overload forLogError
andLogFatal
that accepts a message only. (#2715) Distribution
added toIEventLike
. (#2660)StackFrame
'sImageAddress
,InstructionAddress
, andFunctionId
changed tolong?
. (#2691)DebugImage.ImageAddress
changed tolong?
. (#2725)- Contexts now inherit from
IDictionary
rather thanConcurrentDictionary
. The specific dictionary being used is an implementation detail. (#2729) - The method used to configure a Sentry Sink for Serilog now has an additional overload. Calling
WriteTo.Sentry()
with no arguments will no longer attempt to initialize the SDK (it has optional arguments to configure the behavior of the Sink only). If you want to initialize Sentry at the same time you configure the Sentry Sink then you will need to use the overload of this method that accepts a DSN as the first parameter (e.g.WriteTo.Sentry("https://[email protected]:65535/2147483647")
). (#2928)
-
SentrySinkExtensions.ConfigureSentrySerilogOptions is now internal. If you were using this method, please use one of the
SentrySinkExtensions.Sentry
extension methods instead. (#2902) -
A number of
[Obsolete]
options have been removed (#2841)BeforeSend
- useSetBeforeSend
instead.BeforeSendTransaction
- useSetBeforeSendTransaction
instead.BeforeBreadcrumb
- useSetBeforeBreadcrumb
instead.CreateHttpClientHandler
- useCreateHttpMessageHandler
instead.ReportAssemblies
- useReportAssembliesMode
instead.KeepAggregateException
- this property is no longer used and has no replacement.DisableTaskUnobservedTaskExceptionCapture
method has been renamed toDisableUnobservedTaskExceptionCapture
.DebugDiagnosticLogger
- useTraceDiagnosticLogger
instead.
-
A number of iOS/Android-specific
[Obsolete]
options have been removed (#2856)Distribution
- useSentryOptions.Distribution
instead.EnableAutoPerformanceTracking
- useSetBeforeSendTransaction
instead.EnableCoreDataTracking
- useEnableCoreDataTracing
instead.EnableFileIOTracking
- useEnableFileIOTracing
instead.EnableOutOfMemoryTracking
- useEnableWatchdogTerminationTracking
instead.EnableUIViewControllerTracking
- useEnableUIViewControllerTracing
instead.StitchAsyncCode
- no longer available.ProfilingTracesInterval
- no longer available.ProfilingEnabled
- useProfilesSampleRate
instead.
-
Obsolete
SystemClock
constructor removed, useSystemClock.Clock
instead. (#2856) -
Obsolete
Runtime.Clone()
removed, this shouldn't have been public in the past and has no replacement. (#2856) -
Obsolete
SentryException.Data
removed, useSentryException.Mechanism.Data
instead. (#2856) -
Obsolete
AssemblyExtensions
removed, this shouldn't have been public in the past and has no replacement. (#2856) -
Obsolete
SentryDatabaseLogging.UseBreadcrumbs()
removed, it is called automatically and has no replacement. (#2856) -
Obsolete
Scope.GetSpan()
removed, useSpan
property instead. (#2856) -
Obsolete
IUserFactory
removed, useISentryUserFactory
instead. (#2856, #2840) -
IHasMeasurements
has been removed, useISpanData
instead. (#2659) -
IHasBreadcrumbs
has been removed, useIEventLike
instead. (#2670) -
ISpanContext
has been removed, useITraceContext
instead. (#2668) -
IHasTransactionNameSource
has been removed, useITransactionContext
instead. (#2654) -
(#2694)
-
The unused
StackFrame.InstructionOffset
has been removed. (#2691) -
The unused
Scope.Platform
property has been removed. (#2695) -
The obsolete setter
Sentry.PlatformAbstractions.Runtime.Identifier
has been removed (2764) -
Sentry.Values<T>
is now internal as it is never exposed in the public API (#2771) -
The
TracePropagationTarget
class has been removed, use theSubstringOrRegexPattern
class instead. (#2763) -
The
WithScope
andWithScopeAsync
methods have been removed. We have discovered that these methods didn't work correctly in certain desktop contexts, especially when using a global scope. (#2717)Replace your usage of
WithScope
with overloads ofCapture*
methods:SentrySdk.CaptureEvent(SentryEvent @event, Action<Scope> scopeCallback)
SentrySdk.CaptureMessage(string message, Action<Scope> scopeCallback)
SentrySdk.CaptureException(Exception exception, Action<Scope> scopeCallback)
// Before SentrySdk.WithScope(scope => { scope.SetTag("key", "value"); SentrySdk.CaptureEvent(new SentryEvent()); }); // After SentrySdk.CaptureEvent(new SentryEvent(), scope => { // Configure your scope here scope.SetTag("key", "value"); });
- Experimental pre-release availability of Metrics. We're exploring the use of Metrics in Sentry. The API will very likely change and we don't yet have any documentation. (#2949)
Sentry.Profiling
is now available as a package on nuget. Be aware that profiling is in alpha and on servers the overhead could be high. Improving the experience for ASP.NET Core is tracked on this issue (#2800)- iOS profiling support (alpha). (#2930)
- Native crash reporting on NativeAOT published apps (Windows, Linux, macOS). (#2887)
- Support for Spotlight, a debug tool for local development. (#2961)
- Enable it with the option
EnableSpotlight
- Optionally configure the URL to connect via
SpotlightUrl
. Defaults tohttp://localhost:8969/stream
.
- Enable it with the option
- Added screenshot capture support for errors. You can opt-in via
SentryMauiOptions.AttachScreenshots
(#2965)- Supports Android and iOS only. Windows is not supported.
- App context now has
in_foreground
, indicating whether the app was in the foreground or the background. (#2983) - Android: When capturing unhandled exceptions, the SDK now can automatically attach
LogCat
to the event. You can opt-in viaSentryOptions.Android.LogCatIntegration
and configureSentryOptions.Android.LogCatMaxLines
. (#2926)- Available when targeting
net7.0-android
or later, on API level 23 or later.
- Available when targeting
Native AOT publishing support for .NET 8 has been added to Sentry for the following platforms:
- Windows
- Linux
- macOS
- Mac Catalyst
- iOS
There are some functional differences when publishing Native AOT:
StackTraceMode.Enhanced
is ignored because it's not available when publishing Native AOT. The mechanism to generate these enhanced stack traces relies heavily on reflection which isn't compatible with trimming.- Reflection cannot be leveraged for JSON Serialization and you may need to use
SentryOptions.AddJsonSerializerContext
to supply a serialization context for types that you'd like to send to Sentry (e.g. in theSpan.Context
). (#2732, #2793) Ben.Demystifier
is not available as it only runs in JIT mode.- WinUI applications: When publishing Native AOT, Sentry isn't able to automatically register an unhandled exception handler because that relies on reflection. You'll need to register the unhandled event handler manually instead.
- For Azure Functions Workers, when AOT/Trimming is enabled we can't use reflection to read route data from the HttpTrigger so the route name will always be
/api/<FUNCTION_NAME>
(#2920)
- Native integration logging on macOS (#3079)
- The scope transaction is now correctly set for Otel transactions (#3072)
- Fixed an issue with tag values in metrics not being properly serialized (#3065)
- Moved the binding to MAUI events for breadcrumb creation from
WillFinishLaunching
toFinishedLaunching
. This delays the initial instantiation ofapp
. (#3057) - The SDK no longer adds the
WinUIUnhandledExceptionIntegration
on non-Windows platforms (#3055) - Stop Sentry for MacCatalyst from creating
default.profraw
in the app bundle using xcodebuild archive to build sentry-cocoa (#2960) - Workaround a .NET 8 NativeAOT crash on transaction finish. (#2943)
- Reworked automatic breadcrumb creation for MAUI. (#2900)
- The SDK no longer uses reflection to bind to all public element events. This also fixes issues where the SDK would consume third-party events.
- Added
CreateElementEventsBreadcrumbs
to the SentryMauiOptions to allow users to opt-in automatic breadcrumb creation forBindingContextChanged
,ChildAdded
,ChildRemoved
, andParentChanged
onElement
. - Reduced amount of automatic breadcrumbs by limiting the number of bindings created in
VisualElement
,Window
,Shell
,Page
, andButton
.
- Fixed Sentry SDK has not been initialized when using ASP.NET Core, Serilog, and OpenTelemetry (#2911)
- Android native symbol upload (#2876)
Sentry.Serilog
no longer throws if a disabled DSN is provided when initializing Sentry via the Serilog integration (#2883)- Don't add WinUI exception integration on mobile platforms (#2821)
Transactions
are now getting enriched by the client instead of the hub (#2838)- Fixed an issue when using the SDK together with OpenTelemetry
1.5.0
and newer where the SDK would create transactions for itself. The fix is backward compatible. (#3001)
-
Upgraded to NLog version 5. (#2697)
-
Integrate
sentry-native
as a static library in Native AOT builds to enable symbolication. (#2704) -
Bump Cocoa SDK from v8.16.1 to v8.19.0 (#2910, #2936, #2972, #3005, #3084)
-
Bump Java SDK from v6.34.0 to v7.3.0 (#2932, #2979, #3049, (#3098))
-
Bump CLI from v2.21.5 to v2.27.0 (#2901, #2915, #2956, #2985, #2999, #3012, #3030, #3059, #3062, #3073, #3099)
- Fixed an issue when using the SDK together with Open Telemetry
1.5.0
and newer where the SDK would create transactions for itself. The fix is backward compatible. (#3001)
- Fixed Sentry SDK has not been initialised when using ASP.NET Core, Serilog, and OpenTelemetry (#2918)
- The SDK no longer fails to finish sessions while capturing an event. This fixes broken crash-free rates (#2895)
- Ignore UnobservedTaskException for QUIC exceptions. See: dotnet/runtime#80111 (#2894)
CaptureFailedRequests
andFailedRequestStatusCodes
are now getting respected by the Cocoa SDK. This is relevant for MAUI apps where requests are getting handled natively. (#2826)- Added
SentryOptions.AutoRegisterTracing
for users who need to control registration of Sentry's tracing middleware (#2871)
- Bump Cocoa SDK from v8.15.0 to v8.16.0 (#2812, #2816, #2882)
- Bump CLI from v2.21.2 to v2.21.5 (#2811, #2834, #2851)
- Bump Java SDK from v6.33.1 to v6.34.0 (#2874)
- Speed up SDK init (#2784)
- Fixed chaining on the IApplicationBuilder for methods like UseRouting and UseEndpoints (#2726)
- Bump Cocoa SDK from v8.13.0 to v8.15.0 (#2722, #2740, #2746, #2801)
- Bump Java SDK from v6.30.0 to v6.33.1 (#2723, #2741, #2783, #2803)
- ISentryUserFactory is now public so users can register their own implementations via DI (#2719)
WithScope
andWithScopeAsync
have been proven to not work correctly in desktop contexts when using a global scope. They are now deprecated in favor of the overloads ofCaptureEvent
,CaptureMessage
, andCaptureException
. Those methods provide a callback to a configurable scope. (#2677)StackFrame.InstructionOffset
has not been used in the SDK and has been ignored on the server for years. (#2689)
- Release of Azure Functions (Isolated Worker/Out-of-Process) support (#2686)
- Scope is now correctly applied to Transactions when using OpenTelemetry on ASP.NET Core (#2690)
- Bump CLI from v2.20.7 to v2.21.2 (#2645, #2647, #2698)
- Bump Cocoa SDK from v8.12.0 to v8.13.0 (#2653)
- Bump Java SDK from v6.29.0 to v6.30.0 (#2685)
- Reduced the memory footprint of
SpanId
by refactoring the ID generation (#2619) - Reduced the memory footprint of
SpanTracer
by initializing the tags lazily (#2636) - Added distributed tracing without performance for Azure Function Workers (#2630)
- The SDK now provides and overload of
ContinueTrace
that accepts headers asstring
(#2601) - Sentry tracing middleware now gets configured automatically (#2602)
- Added memory optimisations for GetLastActiveSpan (#2642)
- Resolved issue identifying users with OpenTelemetry (#2618)
- Package name changed from
Sentry.AzureFunctions.Worker
toSentry.Azure.Functions.Worker
. Note AzureFunctions now is split by a.
. (#2637)
- Added Sentry.AspNet.csproj back to Sentry-CI-Build-macOS.slnf (#2612)
- Added additional
DB
attributes to automatically generated spans likename
andprovider
(#2583) Hints
now accept attachments provided as a file path viaAddAttachment
method (#2585)
- Resolved an isse where the SDK would throw an exception while attempting to set the DynamicSamplingContext but the context exists already. (#2592)
- Bump CLI from v2.20.5 to v2.20.6 (#2590)
- Bump Cocoa SDK from v8.10.0 to v8.11.0 (#2594)
- Bump Java SDK from v6.28.0 to v6.29.0 (#2599)
- Graphql client (#2538)
- Android: Fix proguard/r8 mapping file upload (#2574)
- Bump Cocoa SDK from v8.9.5 to v8.10.0 (#2546, #2550)
- Bump gradle/gradle-build-action from 2.7.0 to 2.7.1 (#2564)
- The SDK no longer creates transactions with their start date set to
Jan 01, 001
(#2544)
- Distributed tracing now works independently of the performance feature. This allows you to connect errors to other Sentry instrumented applications (#2493)
- Added Sampling Decision to Trace Envelope Header (#2495)
- Add MinimumEventLevel to Sentry.Log4Net and convert events below it to breadcrumbs (#2505)
- Support transaction finishing automatically with 'idle timeout' (#2452)
- Fixed baggage propagation when an exception is thrown from middleware (#2487)
- Fix Durable Functions preventing orchestrators from completing (#2491)
- Re-enable HubTests.FlushOnDispose_SendsEnvelope (#2492)
- Fixed SDK not sending exceptions via Blazor WebAssembly due to a
PlatformNotSupportedException
(#2506) - Align SDK with docs regarding session update for dropped events (#2496)
- Introduced
HttpMessageHandler
in favor of the now deprecatedHttpClientHandler
on the options. This allows the SDK to support NSUrlSessionHandler on iOS (#2503) - Using
Activity.RecordException
now correctly updates the error status of OpenTelemetry Spans (#2515) - Fixed Transaction name not reporting correctly when using UseExceptionHandler (#2511)
- log4net logging Level.All now maps to SentryLevel.Debug (#2522)
- Bump Java SDK from v6.25.1 to v6.28.0 (#2484, #2498, #2517, #2533)
- Bump CLI from v2.19.4 to v2.20.4 (#2509, #2518, #2527, #2530)
- Bump Cocoa SDK from v8.8.0 to v8.9.4 (#2479, #2483, #2500, #2510, #2531)
- OpenTelemetry Support (#2453)
- Added a MSBuild property
SentryUploadAndroidProguardMapping
to automatically upload the Proguard mapping file when targeting Android (#2455) - Symbolication for Single File Apps (#2425)
- Add binding to
SwiftAsyncStacktraces
on iOS (#2436)
- Builds targeting Android with
r8
enabled no longer crash during SDK init. The package now contains the required proguard rules (#2450) - Fix Sentry logger options for MAUI and Azure Functions (#2423)
- Bump Cocoa SDK from v8.7.3 to v8.8.0 (#2427, #2430)
- Bump CLI from v2.18.1 to v2.19.4 (#2428, #2431, #2451, #2454)
- Bump Java SDK from v6.22.0 to v6.25.1 (#2429, #2440, #2458, #2476)
- SentryHttpMessageHandler added when AddHttpClient is before UseSentry (#2390)
- Set the native sdk name for Android (#2389)
- Fix db connection spans not finishing (#2398)
- Various .NET MAUI fixes / improvements (#2403)
- The battery level was being reported incorrectly due to percentage multiplier.
- The device architecture (x64, arm64, etc.) is now reported
- On Windows, the OS type is now reported as "Windows" instead of "WinUI". Additionally, the OS display version (ex, "22H2") is now included.
UIKit
,ABI.Microsoft
andWinRT
frames are now marked "system" instead of "in app".
- Reduce debug files uploaded (#2404)
- Fix system frames being marked as "in-app" (#2408)
- NOTE: This important fix corrects a value that is used during issue grouping, so you may receive new alerts for existing issues after deploying this update.
- DB Connection spans presented poorly (#2409)
- Populate scope's Cookies property (#2411)
- Fix UWP GateKeeper errors (#2415)
- Fix sql client db name (#2418)
- Bump Cocoa SDK from v8.7.2 to v8.7.3 (#2394)
- Bump Java SDK from v6.19.1 to v6.22.0 (#2395, #2405, #2417)
- .NET SDK changes for exception groups (#2287)
- This changes how
AggregateException
is handled. Instead of filtering them out client-side, the SDK marks them as an "exception group", and adds includes data that represents the hierarchical structure of inner exceptions. Sentry now recognizes this server-side, improving the accuracy of the issue detail page. - Accordingly, the
KeepAggregateException
option is now obsolete and does nothing. Please remove any usages ofKeepAggregateException
. - NOTE: If running Self-Hosted Sentry, you should wait to adopt this SDK update until after updating to the 23.6.0 (est. June 2023) release of Sentry.
The effect of updating the SDK early will be as if
KeepAggregateException = true
was set. That will not break anything, but may affect issue grouping and alerts.
- This changes how
- Status messages when uploading symbols or sources are improved. (#2307)
-
Azure Functions (Isolated Worker/Out-of-Process) support (#2346)
- Initial
beta.1
release. Please give it a try and let us know how it goes! - Documentation is TBD. For now, see
/samples/Sentry.Samples.Azure.Functions.Worker
.
- Initial
-
Add
Hint
support (#2351)- Currently, this allows you to manipulate attachments in the various "before" event delegates.
- Hints can also be used in event and transaction processors by implementing
ISentryEventProcessorWithHint
orISentryTransactionProcessorWithHint
, instead ofISentryEventProcessor
orISentryTransactionProcessor
. - Note: Obsoletes the
BeforeSend
,BeforeSendTransaction
, andBeforeBreadcrumb
properties on theSentryOptions
class. They have been replaced withSetBeforeSend
,SetBeforeSendTransaction
, andSetBeforeBreadcrumb
respectively. Each one provides overloads both with and without aHint
object.
-
Allow setting the active span on the scope (#2364)
- Note: Obsoletes the
Scope.GetSpan
method in favor of aScope.Span
property (which now has a setter as well).
- Note: Obsoletes the
-
Remove authority from URLs sent to Sentry (#2365)
-
Add tag filters to
SentryOptions
(#2367)
-
Fix
EnableTracing
option conflict withTracesSampleRate
(#2368)- NOTE: This is a potentially breaking change, as the
TracesSampleRate
property has been made nullable. Though extremely uncommon, if you are retrieving theTracesSampleRate
property for some reason, you will need to account for nulls. However, there is no change to the behavior or typical usage of either of these properties.
- NOTE: This is a potentially breaking change, as the
-
CachedTransport gracefully handles malformed envelopes during processing (#2371)
-
Remove extraneous iOS simulator resources when building MAUI apps using Visual Studio "Hot Restart" mode, to avoid hitting Windows max path (#2384)
- Bump Cocoa SDK from v8.6.0 to v8.7.1 (#2359, #2370)
- Bump Java SDK from v6.18.1 to v6.19.1 (#2374, #2381)
- Bump Cocoa SDK from v8.6.0 to v8.7.2 (#2359, #2370, #2375)
- Bump CLI from v2.17.5 to v2.18.0 (#2380)
- Initial work to support profiling in a future release. (#2206)
- Create a Sentry event for failed HTTP requests (#2320)
- Improve
WithScope
and addWithScopeAsync
(#2303) (#2309) - Build .NET Standard 2.1 for Unity (#2328)
- Add
RemoveExceptionFilter
,RemoveEventProcessor
andRemoveTransactionProcessor
extension methods onSentryOptions
(#2331) - Include Dynamic Sampling Context with error events, when there's a transaction (#2332)
- Buffer payloads asynchronously when appropriate (#2297)
- Restore
System.Reflection.Metadata
dependency for .NET Core 3 (#2302) - Capture open transactions on disabled hubs (#2319)
- Remove session breadcrumbs (#2333)
- Support synchronous
HttpClient.Send
inSentryHttpMessageHandler
(#2336) - Fix ASP.NET Core issue with missing context when using capture methods that configure scope (#2339)
- Improve debug file upload handling (#2349)
- Bump CLI from v2.17.0 to v2.17.5 (#2298, #2318, #2321, #2345)
- Bump Cocoa SDK from v8.4.0 to v8.6.0 (#2310, #2344)
- Bump Java SDK from v6.17.0 to v6.18.1 (#2338, #2343)
- Add
FileDiagnosticLogger
to assist with debugging the SDK (#2242) - Attach stack trace when events have captured an exception without a stack trace (#2266)
- Add
Scope.Clear
andScope.ClearBreadcrumbs
methods (#2284) - Improvements to exception mechanism data (#2294)
- Normalize StackFrame in-app resolution for modules & function prefixes (#2234)
- Calling
AddAspNet
more than once should not block all errors from being sent (#2253) - Fix Sentry CLI arguments when using custom URL or auth token parameters (#2259)
- Sentry.AspNetCore fix transaction name when path base is used and route starts with a slash (#2265)
- Fix Baggage header parsing in ASP.NET (Framework) (#2293)
-
Bump Cocoa SDK from v8.3.0 to v8.4.0 (#2237, #2248, #2251, #2285)
-
Bump CLI from v2.14.4 to v2.17.0 (#2238, #2244, #2252, #2264, #2292)
- Get debug image for Full PDB format on Windows (#2222)
- Fix debug files not uploading for
packages.config
nuget (#2224)
Notice: The <SentryUploadSymbols>
MSBuild property previously defaulted to true
for projects compiled in Release
configuration.
It is now false
by default. To continue uploading symbols, you must opt-in by setting it to true
.
See the MSBuild Setup docs for further details.
- Added basic functionality to support
View Hierarchy
(#2163) - Allow
SentryUploadSources
to work even when not uploading symbols (#2197) - Add support for
BeforeSendTransaction
(#2188) - Add
EnableTracing
option to simplify enabling tracing (#2201) - Make
SentryUploadSymbols
strictly opt-in (#2216)
- Fix assembly not found on Android in Debug configuration (#2175)
- Fix context object with circular reference prevents event from being sent (#2210)
- Bump Java SDK from v6.13.1 to v6.15.0 (#2185, #2207)
- Bump CLI from v2.12.0 to v2.14.4 (#2187, #2215)
- Bump Java SDK from v6.13.1 to v6.14.0 (#2185)
- Bump CLI from v2.12.0 to v2.14.3 (#2187, #2208)
- Bump Cocoa SDK from v7.31.5 to v8.2.0 (#2203)
- Fix MAUI missing breadcrumbs for lifecycle and UI events (#2170)
- Fix hybrid sdk names (#2171)
- Fix ASP.NET sdk name (#2172)
- Added
instruction_addr_adjustment
attribute to SentryStackTrace (#2151)
- Workaround Visual Studio "Pair to Mac" issue (on Windows), and Update bundled Cocoa SDK to version 7.31.5 (#2164)
- Sentry SDK assemblies no longer have PDBs embedded. Debug symbols are uploaded to
nuget.org
assnupkg
packages (#2166)
- Fix Sentry CLI MSBuild for Xamarin and NetFX (#2154)
- Log aborted HTTP requests as debug instead of error (#2155)
- Publish
Sentry.Android.AssemblyReader
as a separate nuget package (for reuse bySentry.Xamarin
) (#2127) - Improvements for Sentry CLI integration (#2145)
- Update bundled Android SDK to version 6.13.0 (#2147)
- Fix issue with Sentry CLI msbuild properties (#2119)
- Use Sentry CLI after build to upload symbols (#2107)
- Logging info instead of warning when skipping debug images (#2101)
- Fix unhandled exception not captured when hub disabled (#2103)
- Fix Android support for Portable PDB format when app uses split APKs (#2108)
- Fix session ending as crashed for unobserved task exceptions (#2112)
- Set absolute path when stripping project path on stack frame (#2117)
- Add support for Portable PDB format (#2050)
- Update bundled Android SDK to version 6.10.0(#2095)
- Update bundled Cocoa SDK to version 7.31.4 (#2096)
- Fix db warnings caused by transaction sampled out (#2097)
- Fix missing stack trace on UnobservedTaskException (#2067)
- Fix warning caused by db connection span closed prematurely (#2068)
- Attach db connections to child spans correctly (#2071)
- Improve MAUI event bindings (#2089)
- Simplify API for flushing events (#2030)
- Update bundled Cocoa SDK to version 7.31.1 (#2053)
- Update bundled Android SDK to version 6.7.1 (#2058)
- Update unobserved task exception integration (#2034)
- Fix trace propagation targets setter (#2035)
- Fix DiagnosticSource integration disabled incorrectly with TracesSampler (#2039)
- Update transitive dependencies to resolve security warnings (#2045)
- Fix issue with Hot Restart for iOS (#2047)
- Fix
CacheDirectoryPath
option on MAUI (#2055)
- Fix concurrency bug in caching transport (#2026)
- Update bundled Android SDK to version 6.5.0 (#1984)
- Update bundled Cocoa SDK to version 7.28.0 (#1988)
- Allow custom processors to be added as a scoped dependency (#1979)
- Support DI for custom transaction processors (#1993)
- Mark Transaction as aborted when unhandled exception occurs (#1996)
- Build Windows and Tizen targets for
Sentry.Maui
(#2005) - Add Custom Measurements API (#2013)
- Add
ISpan.GetTransaction
convenience method (#2014)
- Split Android and Cocoa bindings into separate projects (#1983)
- NuGet package
Sentry
now depends onSentry.Bindings.Android
fornet6.0-android
targets. - NuGet package
Sentry
now depends onSentry.Bindings.Cocoa
fornet6.0-ios
andnet6.0-maccatalyst
targets.
- NuGet package
- Exclude EF error message from logging (#1980)
- Ensure logs with lower levels are captured by
Sentry.Extensions.Logging
(#1992) - Fix bug with pre-formatted strings passed to diagnostic loggers (#2004)
- Fix DI issue by binding to MAUI using lifecycle events (#2006)
- Unhide
SentryEvent.Exception
(#2011) - Bump
Google.Cloud.Functions.Hosting
to version 1.1.0 (#2015) - Fix default host issue for the Sentry Tunnel middleware (#2019)
SentryOptions.AttachStackTrace
is now enabled by default. (#1907)- Update Sentry Android SDK to version 6.4.1 (#1911)
- Update Sentry Cocoa SDK to version 7.24.1 (#1912)
- Add
TransactionNameSource
annotation (#1910) - Use URL path in transaction names instead of "Unknown Route" (#1919)
- NOTE: This change effectively ungroups transactions that were previously grouped together under "Unkown Route".
- Add
User.Segment
property (#1920) - Add support for custom
JsonConverter
s (#1934) - Support more types for message template tags in SentryLogger (#1945)
- Support Dynamic Sampling (#1953)
- Reduce lock contention when sampling (#1915)
- Dont send transaction for OPTIONS web request (#1921)
- Fix missing details when aggregate exception is filtered out (#1922)
- Exception filters should consider child exceptions of an
AggregateException
(#1924) - Add Blazor WASM detection to set IsGlobalModeEnabled to true (#1931)
- Respect Transaction.IsSampled in SqlListener (#1933)
- Ignore null Context values (#1942)
- Tags should not differ based on current culture (#1949)
- Always recalculate payload length (#1957)
- Fix issues with envelope deserialization (#1965)
- Set default trace status to
ok
instead ofunknown_error
(#1970) - Fix reported error count on a crashed session update (#1972)
Includes Sentry.Maui Preview 3
- Add ISentryTransactionProcessor (#1862)
- Added 'integrations' to SdkVersion (#1820)
- Updated Sentry Android SDK to version 6.3.0 (#1826)
- Add the Sentry iOS SDK (#1829)
- Enable Scope Sync for iOS (#1834)
- Add API for deliberately crashing an app (#1842)
- Add Mac Catalyst target (#1848)
- Add
Distribution
properties (#1851) - Add and configure options for the iOS SDK (#1849)
- Set default
Release
andDistribution
for iOS and Android (#1856) - Apply WinUI 3 exception handler in Sentry core (#1863)
- Copy context info from iOS (#1884)
- Parse "Mono Unity IL2CPP" correctly in platform runtime name (#1742)
- Fix logging loop with NLog sentry (#1824)
- Fix logging loop with Serilog sentry (#1828)
- Skip attachment if stream is empty (#1854)
- Allow some mobile options to be modified from defaults (#1857)
- Fix environment name casing issue (#1861)
- Null check HttpContext in SystemWebVersionLocator (#1881)
- Fix detection of .NET Framework 4.8.1 (#1885)
- Flush caching transport with main flush (#1890)
- Fix Sentry interfering with MAUI's focus events (#1891)
- Stop using
server-os
andserver-runtime
(#1893)
- URGENT: Fix events rejected due to duplicate
sent_at
header when offline caching is enabled throughCacheDirectoryPath
(#1818) - Fix null ref in aspnet TryGetTraceHeader (#1807)
- Use
sent_at
instead ofsentry_timestamp
to reduce clock skew (#1690) - Send project root path with events (#1739)
- Detect MVC versioning in route (#1731)
- Fix error with
ConcurrentHashMap
on Android <= 9 (#1761) - Minor improvements to
BackgroundWorker
(#1773) - Make GzipRequestBodyHandler respect async (#1776)
- Fix race condition in handling of
InitCacheFlushTimeout
(#1784) - Fix exceptions on background thread not reported in Unity (#1794)
Includes Sentry.Maui Preview 2
- Expose
EnumerateChainedExceptions
(#1733) - Android Scope Sync (#1737)
- Enable logging in MAUI (#1738)
- Support
IntPtr
andUIntPtr
serialization (#1746) - Log Warning when secret is detected in DSN (#1749)
- Catch permission exceptions on Android (#1750)
- Enable offline caching in MAUI (#1753)
- Send client report when flushing queue (#1757)
- Set MAUI minimum version (#1728)
- Don't allow
SentryDiagnosticListenerIntegration
to be added multiple times (#1748) - Catch permission exceptions for MAUI (#1750)
- Don't allow newlines in diagnostic logger messages (#1756)
Includes Sentry.Maui Preview 1
- Move tunnel functionality into Sentry.AspNetCore (#1645)
- Make
HttpContext
available for sampling decisions (#1682) - Send the .NET Runtime Identifier to Sentry (#1708)
- Added a new
net6.0-android
target for theSentry
core library, which bundles the Sentry Android SDK: - Added a new
Sentry.Maui
integration library for the .NET MAUI platform:
- Remove IInternalSdkIntegration (#1656)
- On async Main, dont unregister unhandled exception before capturing crash (#321)
- Handle BadHttpRequestException from Kestrel inside SentryTunnelMiddleware (#1673)
- Improve timestamp precision of transactions and spans (#1680)
- Flatten AggregateException (#1672)
- NOTE: This can affect grouping. You can keep the original behavior by setting the option
KeepAggregateException
totrue
.
- NOTE: This can affect grouping. You can keep the original behavior by setting the option
- Serialize stack frame addresses as strings. (#1692)
- Improve serialization perf and fix memory leak in
SentryEvent
(#1693) - Add type checking in contexts TryGetValue (#1700)
- Restore serialization of the
Platform
name (#1702)
- Rework how the
InitCacheFlushTimeout
option is implemented. (#1644) - Add retry logic to the caching transport when moving files back from the processing folder. (#1649)
Notice: If you are using self-hosted Sentry, this version and forward requires either Sentry version >= 21.9.0, or you must manually disable sending client reports via the SendClientReports
option.
- Collect and send Client Reports to Sentry, which contain counts of discarded events. (#1556)
- Expose
ITransport
andSentryOptions.Transport
public, to support using custom transports (#1602) - Android native crash support (#1288)
- Workaround
System.Text.Json
issue with Unity IL2CPP. (#1583) - Demystify stack traces for exceptions that fire in a
BeforeSend
callback. (#1587) - Obsolete
Platform
and always writecsharp
(#1610) - Fix a minor issue in the caching transport related to recovery of files from previous session. (#1617)
- Better DisableAppDomainProcessExitFlush docs (#1634)
- Use a default value of 60 seconds if a
Retry-After
header is not present. (#1537) - Add new Protocol definitions for DebugImages and AddressMode (#1513)
- Add
HttpTransport
extensibility and synchronous serialization support (#1560) - Add
UseAsyncFileIO
to Sentry options (enabled by default) (#1564)
- Fix event dropped by bad attachment when no logger is set. (#1557)
- Ignore zero properties for MemoryInfo (#1531)
- Cleanup diagnostic source (#1529)
- Remove confusing message Successfully sent cached envelope (#1542)
- Fix infinite loop in SentryDatabaseLogging.UseBreadcrumbs (#1543)
- GetFromRuntimeInformation() in try-catch (#1554)
- Make
Contexts
properties more thread-safe (#1571) - Fix
PlatformNotSupportedException
exception onnet6.0-maccatalyst
targets (#1567) - In ASP.Net Core, make sure that
SentrySdk.LastEventId
is accessible from exception handler pages (#1573)
- Expose ConfigureAppFrame as a public static function. (#1493)
- Make
SentryDiagnosticSubscriber._disposableListeners
thread safe (#1506) - Adjust database span names by replacing
_
to.
.db.query_compiler
becomesdb.query.compile
. (#1502)
- Add the delegate TransactionNameProvider to allow the name definition from Unknown transactions on ASP.NET Core (#1421)
- SentrySDK.WithScope is now obsolete in favour of overloads of CaptureEvent, CaptureMessage, CaptureException (#1412)
- Add Sentry to global usings when ImplicitUsings is enabled (
<ImplicitUsings>true</ImplicitUsings>
) (#1398) - The implementation of the background worker can now be changed (#1450)
- Map reg key 528449 to net48 (#1465)
- Improve logging for failed JSON serialization (#1473)
- Handle exception from crashedLastRun callback (#1328)
- Reduced the logger noise from EF when not using Performance Monitoring (#1441)
- Create CachingTransport directories in constructor to avoid DirectoryNotFoundException (#1432)
- UnobservedTaskException is now considered as Unhandled (#1447)
- Avoid calls the Thread.CurrentThread where possible (#1466)
- Rename thread pool protocol keys to snake case (#1472)
- Treat IOException as a network issue (#1476)
- Fix incorrect sdk name in envelope header (#1474)
- Use Trace.WriteLine for TraceDiagnosticLogger (#1475)
- Remove Exception filters to work around Unity bug on 2019.4.35f IL2CPP (#1486)
- Add CaptureLastError as an extension method to the Server class on ASP.NET (#1411)
- Add IsDynamicCode* to events (#1418)
- Dispose of client should only flush (#1354)
- Events no longer get dropped because of non-serializable contexts or attachments (#1401)
- Add MemoryInfo to sentry event (#1337)
- Report ThreadPool stats (#1399)
- log through serialization (#1388)
- Attaching byte arrays to the scope no longer leads to ObjectDisposedException (#1384)
- Operation cancel while flushing cache no longer logs an errors (#1352)
- Dont fail for attachment read error (#1378)
- Fix file locking in attachments (#1377)
- Dont log "Ignoring request with Size" when null (#1348)
- Move to stable v6 for
Microsoft.Extensions.*
packages (#1347) - bump Ben.Demystifier adding support for Microsoft.Bcl.AsyncInterfaces(#1349)
- Fix EF Core garbage collected messages and ordering (#1368)
- Update X-Sentry-Auth header to include correct sdk name and version (#1333)
- Add automatic spans to Entity Framework operations (#1107)
- Avoid using the same connection Span for the same ConnectionId (#1317)
- Finish unfinished Spans on Transaction completion (#1296)
- .NET 6 specific targets (#939)
- Forward the IP of the client with whe tunnel middleware (#1310)
- Sentry Sessions status as Breadcrumbs (#1263)
- Enhance GCP Integraction with performance monitoring and revision number (#1286)
- Bump Ben.Demystifier to support .NET 6 (#1290)
- ASP.NET Core: Data from Scope in options should be applied on each request (#1270)
- Add missing
ConfigureAwaits(false)
forasync using
(#1276) - Fix missing handled tag when events are logged via an ASP.NET Core pipeline logger (#1284)
- Add additional primitive values as tags on SentryLogger (#1246)
- Events are now sent on Google Gloud Functions Integration (#1249)
- Cache envelope headers (#1242)
- Avoid replacing Transaction Name on ASP.NET Core by null or empty (#1215)
- Ignore DiagnosticSource Integration if no Sampling available (#1238)
- Unity Android support: check for native crashes before closing session as Abnormal (#1222)
- Add missing PathBase from ASP.NET Core (#1198)
- Use fallback if route pattern is MVC (#1188)
- Move UseSentryTracing to different namespace (#1200)
- Prevent duplicate package reporting (#1197)
- Exceptions from UnhandledExceptionIntegration were not marking sessions as crashed (#1193)
- Removed braces from tag keys on DefaultSentryScopeStateProcessor (#1183)
- Fix SQLClient unplanned behaviors (#1179)
- Add fallback to Scope Stack from AspNet (#1180)
- EF Core and SQLClient performance monitoring integration (#1154)
- Improved SDK diagnostic logs (#1161)
- Add Scope observer to SentryOptions (#1153)
- Fix end session from Hub adapter not being passed to SentrySDK (#1158)
- Installation id catches dir not exist(#1159)
- Set error status to transaction if http has exception and ok status (#1143)
- Fix max breadcrumbs limit when MaxBreadcrumbs is zero or lower (#1145)
- New package Sentry.Tunnel to proxy Sentry events (#1133)
- Add IsParentSampled to ITransactionContext (#1128
- Avoid warn in global mode (#1132)
- Fix
ParentSampledId
being reset onTransaction
(#1130)
- Persisted Sessions logging (#1125)
- Don't log an error when attempting to recover a persisted session but none exists (#1123)
- Introduce scope stack abstraction to support global scope on desktop and mobile applications and
HttpContext
-backed scoped on legacy ASP.NET (#1124)
- ASP.NET Core: fix handled not being set for Handled exceptions (#1111)
- File system persistence for sessions (#1105)
- Add HTTP request breadcrumb (#1113)
- Integration for Google Cloud Functions (#1085)
- Add ClearAttachments to Scope (#1104)
- Add additional logging and additional fallback for installation ID (#1103)
- Avoid Unhandled Exception on .NET 461 if the Registry Access threw an exception (#1101)
IHub.ResumeSession()
: don't start a new session if pause wasn't called or if there is no active session (#1089)- Fixed incorrect order when getting the last active span (#1094)
- Fix logger call in BackgroundWorker that caused a formatting exception in runtime (#1092)
- Implement pause & resume session (#1069)
- Add auto session tracking (#1068)
- Add SDK information to envelope (#1084)
- Add ReportAssembliesMode in favor of ReportAssemblies (#1079)
- System.Text.Json 5.0.2 (#1078)
- Extended Device and GPU protocol; public IJsonSerializable (#1063)
- ASP.NET Core: Option
AdjustStandardEnvironmentNameCasing
to opt-out from lower casing env name. #1057 - Sessions: Improve exception check in
CaptureEvent(...)
for the purpose of reporting errors in session (#1058) - Introduce TraceDiagnosticLogger and obsolete DebugDiagnosticLogger (#1048)
- Handle error thrown while trying to get
BootTime
on PS4 with IL2CPP (#1062) - Use SentryId for ISession.Id (#1052)
- Add System.Reflection.Metadata as a dependency for netcoreapp3.0 target(#1064)
- Implemented client-mode release health (#1013)
- Report lowercase staging environment for ASP.NET Core (#1046)
- Report user IP address for ASP.NET Core (#1045)
- Connect middleware exceptions to transactions (#1043)
- Hub.IsEnabled set to false when Hub disposed (#1021)
- Sentry.EntityFramework moved to this repository (#1017)
- Additional
netstandard2.1
target added. Sample with .NET Core 3.1 console app. UseBreadcrumbs
is called automatically byAddEntityFramework
- Serilog: Add support for Serilog.Formatting.ITextFormatter (#998)
- simplify ifdef (#1010)
- Use
DebugDiagnosticLogger
as the default logger for legacy ASP.NET (#1012) - Adjust parameter type in
AddBreadcrumb
to useIReadOnlyDictionary<...>
instead ofDictionary<...>
(#1000) - await dispose everywhere (#1009)
- Further simplify transaction integration from legacy ASP.NET (#1011)
- Default environment to "debug" if running with debugger attached (#978)
- ASP.NET Classic:
HttpContext.StartSentryTransaction()
extension method (#996)
- Unity can have negative line numbers (#994)
- Fixed an issue where an attempt to deserialize
Device
with a non-system time zone failed (#993)
- Env var to keep large envelopes if they are rejected by Sentry (#957)
- serialize parent_span_id in contexts.trace (#958)
- boot time detection can fail in some cases (#955)
- Don't override Span/Transaction status on Finish(...) if status was not provided explicitly (#928) @Tyrrrz
- Fix startup time shows incorrect value on macOS/Linux. Opt-out available for IL2CPP. (#948)
- Move Description field from Transaction to Trace context (#924) @Tyrrrz
- Drop unfinished spans from transaction (#923) @Tyrrrz
- Don't dispose the SDK when UnobservedTaskException is captured (#925) @bruno-garcia
- Fix spans not inheriting TraceId from transaction (#922) @Tyrrrz
- Add StartupTime and Device.BootTime (#887) @lucas-zimerman
- Link events to currently active span (#909) @Tyrrrz
- Add useful contextual data to TransactionSamplingContext in ASP.NET Core integration (#910) @Tyrrrz
- Limit max spans in transaction to 1000 (#908) @Tyrrrz
- Changed the underlying implementation of
ITransaction
andISpan
.IHub.CaptureTransaction
now takes aTransaction
instead ofITransaction
. (#880) @Tyrrrz - Add IsParentSampled to TransactionContext (#885) @Tyrrrz
- Retrieve CurrentVersion for ASP.NET applications (#884) @lucas-zimerman
- Make description parameter nullable on
ISpan.StartChild(...)
and related methods (#900) @Tyrrrz - Add Platform to Transaction, mimicking the same property on SentryEvent (#901) @Tyrrrz
- Adding TaskUnobservedTaskExceptionIntegration to default integrations and method to remove it (#870) @FilipNemec
- Enrich transactions with more data (#875) @Tyrrrz
- Don't add version prefix in release if it's already set (#877) @Tyrrrz
- Add AddSentryTag and AddSentryContext Extensions for exception class (#834) @lucas-zimerman
- Associate span exceptions with event exceptions (#848) @Tyrrrz
- MaxCacheItems option to control files on disk (#846) @Tyrrrz
- Move SentryHttpMessageHandlerBuilderFilter to Sentry.Extensions.Logging (#845) @Tyrrrz
- Fix CachingTransport throwing an exception when it can't move the files from the previous session (#871) @Tyrrrz
- Don't write timezone_display_name if it's the same as the ID (#837) @Tyrrrz
- Serialize arbitrary objects in contexts (#838) @Tyrrrz
- Fix serialization of transactions when filesystem caching is enabled. (#815) @Tyrrrz
- Fix UWP not registering exceptions (#821) @lucas-zimerman
- Fix tracing middleware (#813) @Tyrrrz
- Fix transaction sampling (#810) @Tyrrrz
- Don't add logs coming from Sentry as breadcrumbs (fixes stack overflow exception) (#797) @Tyrrrz
- Consolidate logic for resolving hub (fixes bug "SENTRY_DSN is not defined") (#795) @Tyrrrz
- Add SetFingerprint overload that takes
params string[]
(#796) @Tyrrrz - Create spans for outgoing HTTP requests (#802) @Tyrrrz
- Finish span on exception in SentryHttpMessageHandler (#806) @Tyrrrz
- Fix ObjectDisposedException caused by object reuse in RetryAfterHandler (#807) @Tyrrrz
- Fix DI issues in ASP.NET Core + SentryHttpMessageHandlerBuilderFilter (#789) @Tyrrrz
- Fix incorrect NRT on SpanContext.ctor (#788) @Tyrrrz
- Remove the
Evaluate
error from the breadcrumb list (#790) @Tyrrrz - Set default tracing sample rate to 0.0 (#791) @Tyrrrz
- Add GetSpan() to IHub and SentrySdk (#782) @Tyrrrz
- Automatically start transactions from incoming trace in ASP.NET Core (#783) @Tyrrrz
- Automatically inject 'sentry-trace' on outgoing requests in ASP.NET Core (#784) @Tyrrrz
- bump log4net 2.0.12 (#781) @bruno-garcia
- Fix Serilog version (#780) @bruno-garcia
- Move main Protocol types to Sentry namespace (#779) @bruno-garcia
- Add support for dynamic transaction sampling. (#753) @Tyrrrz
- Integrate trace headers. (#758) @Tyrrrz
- Renamed Option
DiagnosticsLevel
toDiagnosticLevel
(#759) @bruno-garcia - Add additional data to transactions (#763) @Tyrrrz
- Improve transaction instrumentation on ASP.NET Core (#766) @Tyrrrz
- Add
Release
toScope
(#765) @Tyrrrz - Don't fallback to
HttpContext.RequestPath
if a route is unknown (#767 #769) @kanadaj @Tyrrrz
- Add instruction_addr to SentryStackFrame. (#744) @lucas-zimerman
- Default stack trace format: Ben.Demystifier (#732) @bruno-garcia
- Limit attachment size (#705)
- Separate tracing middleware (#737)
- Bring Transaction a bit more inline with Java SDK (#741)
- Sync transaction and transaction name on scope (#740)
- Disabled Mono StackTrace Factory. (#709) @lucas-zimerman
- Adds to the existing User Other dict rather than replacing (#729) @brettjenkins
- Handle non-json error response messages on HttpTransport. (#690) @lucas-zimerman
- Fix deadlock on missing ConfigureAwait into foreach loops. (#694) @lucas-zimerman
- Report gRPC sdk name (#700) @bruno-garcia
- Include parameters in stack frames. (#662) @Tyrrrz
- Remove CultureUIInfo if value is even with CultureInfo. (#671) @lucas-zimerman
- Make all fields on UserFeedback optional. (#660) @Tyrrrz
- Align transaction names with Java. (#659) @Tyrrrz
- Include assembly name in default release. (#682) @Tyrrrz
- Add support for attachments. (#670) @Tyrrrz
- Improve logging for relay errors. (#683) @Tyrrrz
- Report sentry.dotnet.aspnet on the new Sentry.AspNet package. (#681) @Tyrrrz
- Always send a default release. (#695) @Tyrrrz
- Ref moved SentryId from namespace Sentry.Protocol to Sentry (#643) @lucas-zimerman
- Ref renamed
CacheFlushTimeout
toInitCacheFlushTimeout
(#638) @lucas-zimerman - Add support for performance. (#633)
- Transaction (of type
string
) on Scope and Event now is called TransactionName. (#633)
- Abandon ValueTask #611
- Fix Cache deleted on HttpTransport exception. (#610) @lucas-zimerman
- Add
SentryScopeStateProcessor
#603 - Add net5.0 TFM to libraries #606
- Add more logging to CachingTransport #619
- Bump Microsoft.Bcl.AsyncInterfaces to 5.0.0 #618
- Bump
Microsoft.Bcl.AsyncInterfaces
to 5.0.0 #618 DefaultTags
moved fromSentryLoggingOptions
toSentryOptions
(#637) @PureKromeSentry.Serilog
can accept DefaultTags (#637) @PureKrome
- Replaced
BaseScope
withIScope
. (#590) @Tyrrrz - Removed code coverage report from the test folder. (#592) @lucas-zimerman
- Add target framework NET5.0 on Sentry.csproj. Change the type of
Extra
where value parameter become nullable. @lucas-zimerman - Implement envelope caching. (#576) @Tyrrrz
- Add a list of .NET Frameworks installed when available. (#531) @lucas-zimerman
- Parse Mono and IL2CPP stacktraces for Unity and Xamarin (#578) @bruno-garcia
- Update TFMs and dependency min version (#580) @bruno-garcia
- Run all tests on .NET 5 (#583) @bruno-garcia
- Add the client user ip if both SendDefaultPii and IsEnvironmentUser are set. (#1015) @lucas-zimerman
- Replace Task with ValueTask where possible. (#564) @Tyrrrz
- Add support for ASP.NET Core gRPC (#563) @Mitch528
- Push API docs to GitHub Pages GH Actions (#570) @bruno-garcia
- Refactor envelopes
- Add support for user feedback. (#559) @lucas-zimerman
- Add support for envelope deserialization (#558) @Tyrrrz
- Add package description and tags to Sentry.AspNet @Tyrrrz
- Fix internal url references for the new Sentry documentation. (#562) @lucas-zimerman
- Set the Environment setting to 'production' if none was provided. (#550) @PureKrome
- ASPNET.Core hosting environment is set to 'production' / 'development' (notice lower casing) if no custom options.Enviroment is set. (#554) @PureKrome
- Add most popular libraries to InAppExclude #555 (@bruno-garcia)
- Add support for individual rate limits.
- Extend
SentryOptions.BeforeBreadcrumb
signature to accept returning nullable values. - Add support for envelope deserialization.
- Rename
LogEntry
toSentryMessage
. Change type ofSentryEvent.Message
fromstring
toSentryMessage
. - Change the type of
Gpu.VendorId
fromint
tostring
. - Add support for envelopes.
- Publishing symbols package (snupkg) to nuget.org with sourcelink
- Move aspnet-classic integration to Sentry.AspNet (#528) @Tyrrrz
- Merge Sentry.Protocol into Sentry (#527) @Tyrrrz
- Framework and runtime info (#526) @bruno-garcia
- Add NRTS to Sentry.Extensions.Logging (#524) @Tyrrrz
- Add NRTs to Sentry.Serilog, Sentry.NLog, Sentry.Log4Net (#521) @Tyrrrz
- Add NRTs to Sentry.AspNetCore (#520) @Tyrrrz
- Fix CI build on GitHub Actions (#523) @Tyrrrz
- Add GitHubActionsTestLogger (#511) @Tyrrrz
We'd love to get feedback.
Add nullable reference types support (Sentry, Sentry.Protocol) (#509) fix: Use ASP.NET Core endpoint FQDN (#485) feat: Add integration to TaskScheduler.UnobservedTaskException (#481)
fix: aspnet fqdn (#485) @bruno-garcia ref: wait on test the time needed (#484) @bruno-garcia feat: Add integration to TaskScheduler.UnobservedTaskException (#481) @lucas-zimerman build(deps): bump Serilog.AspNetCore from 3.2.0 to 3.4.0 (#477) @dependabot-preview Fix README typo (#480) @AndreasLangberg build(deps): bump coverlet.msbuild from 2.8.1 to 2.9.0 (#462) @dependabot-preview build(deps): bump Microsoft.Extensions.Logging.Debug @dependabot-preview fix some spelling (#475) @SimonCropp build(deps): bump Microsoft.Extensions.Configuration.Json (#467) @dependabot-preview
- fix: MEL don't init if enabled (#460) @bruno-garcia
- feat: Device Calendar, Timezone, CultureInfo (#457) @bruno-garcia
- ref: Log out debug disabled (#459) @bruno-garcia
- dep: Bump PlatformAbstractions (#458) @bruno-garcia
- feat: Exception filter (#456) @bruno-garcia
- fix: MEL don't init if enabled (#460) @bruno-garcia
- feat: Device Calendar, Timezone, CultureInfo (#457) @bruno-garcia
- ref: Log out debug disabled (#459) @bruno-garcia
- dep: Bump PlatformAbstractions (#458) @bruno-garcia
- feat: Exception filter (#456) @bruno-garcia
- NLog SentryTarget - NLogDiagnosticLogger for writing to NLog InternalLogger (#450) @snakefoot
- fix: SentryScopeManager dispose message (#449) @bruno-garcia
- fix: dont use Sentry namespace on sample (#447) @bruno-garcia
- Remove obsolete API from benchmarks (#445) @bruno-garcia
- build(deps): bump Microsoft.Extensions.Logging.Debug from 2.1.1 to 3.1.4 (#421) @dependabot-preview
- build(deps): bump Microsoft.AspNetCore.Diagnostics from 2.1.1 to 2.2.0 (#431) @dependabot-preview
- build(deps): bump Microsoft.CodeAnalysis.CSharp.Workspaces from 3.1.0 to 3.6.0 (#437) @dependabot-preview
- SentryScopeManager - Fixed clone of Stack so it does not reverse order (#420) @snakefoot
- build(deps): bump Serilog.AspNetCore from 2.1.1 to 3.2.0 (#411) @dependabot-preview
- Removed dependency on System.Collections.Immutable (#405) @snakefoot
- Fix Sentry.Microsoft.Logging Filter now drops also breadcrumbs (#440)
Fix Background worker dispose logs error message (#408) Fix sentry serilog extension method collapsing (#406) Fix Sentry.Samples.NLog so NLog.config is valid (#404)
Thanks @snakefoot and @JimHume for the fixes
Add MVC route data extraction to ScopeExtensions.Populate() (#401)
Fixed ASP.NET System.Web catch HttpException to prevent the request processor from being unable to submit #397 (#398)
- Ignore WCF error and capture (#391)
- Serilog Sentry sink does not load all options from IConfiguration (#380)
- UnhandledException sets Handled=false (#382)
Bug fix: Don't overwrite server name set via configuration with machine name on ASP.NET Core #372
- Set score url to fully constructed url #367 Thanks @christopher-taormina-zocdoc
- Don't dedupe from inner exception #363 - Note this might change groupings. It's opt-in.
- Expose FlushAsync to intellisense #362
- Protocol monorepo #325 - new protocol version whenever there's a new SDK release
Expose httpHandler creation (#359) NLog: possibility to override fingerprint using AdditionalGroupingKey (#358) @Shtannikov Take ServerName from options (#356)
Add logger and category from Serilog SourceContext. (#316) @krisztiankocsis Set DateFormatHandling.IsoDateFormat for serializer. Fixes #351 (#353) @olsh
Removed -beta
from dependencies.
- SentryTarget - GetTagsFromLogEvent with null check (#326)
- handled process corrupted (#328)
- sourcelink GA (#330)
- Adds ability to specify user values via NLog configuration (#336)
- Add option to ASP.NET Core to flush events after response complete (#288)
- Fixed race on
BackgroundWorker
(#293) - Exclude
Sentry.
frames from InApp (#272) - NLog SentryTarget with less overhead for breadcrumb (#273)
- Logging on body not extracted (#246)
- Add support to DefaultTags for ASP.NET Core and M.E.Logging (#268)
- Don't use ValueTuple (#263)
- All public members were documented: #252
- Use EnableBuffering to keep request payload around: #250
- Serilog default levels: #237
- Removed dev dependency from external dependencies 4d92ab0
- Use new
Sentry.Protocol
836fb07e - Use new
Sentry.PlatformAbsrtractions
#226 - Debug logging for ASP.NET Classic #209
- Reading request body throws on ASP.NET Core 3 (#324)
- NLog: null check contextProp.Value during IncludeEventDataOnBreadcrumbs (#323)
- JsonSerializerSettings - ReferenceLoopHandling.Ignore (#312)
- Fixed error when reading request body affects collecting other request data (#299)
Microsoft.Extensions.Logging
ConfigureScope
invocation. #208, #210, #224 Thanks @dbraillonSentry.Serilog
Verbose level. #213, #217. Thanks @kanadaj- AppDomain.ProcessExit will close the SDK: #242
- Adds PublicApiAnalyzers to public projects: #234
- NLog: Utilizes Flush functionality in NLog target: #228
- NLog: Set the logger via the log event info in SentryTarget.Write, #227
- Multi-target .NET Core 3.0 (#308)
Major version bumped due to these breaking changes:
Sentry.Protocol
version 2.0.0- Remove StackTrace from SentryEvent #38 - StackTrace is either part of Thread or SentryException.
- Removed
ContextLine
#223 - Use
StackTrace
fromThreads
#222 FlushAsync
added toISentryClient
#214
- SentryTarget - GetTagsFromLogEvent with null check (#326)
- handled process corrupted (#328)
- sourcelink GA (#330)
- Adds ability to specify user values via NLog configuration (#336)
Fixes:
- Reading request body throws on ASP.NET Core 3 (#324)
- NLog: null check contextProp.Value during IncludeEventDataOnBreadcrumbs (#323)
- JsonSerializerSettings - ReferenceLoopHandling.Ignore (#312)
Features:
- Multi-target .NET Core 3.0 (#308)
- Fixed error when reading request body affects collecting other request data (#299)
- Add option to ASP.NET Core to flush events after response complete (#288)
- Fixed race on
BackgroundWorker
(#293) - Exclude
Sentry.
frames from InApp (#272) - NLog SentryTarget with less overhead for breadcrumb (#273)
- Logging on body not extracted (#246)
- Add support to DefaultTags for ASP.NET Core and M.E.Logging (#268)
- Don't use ValueTuple (#263)
- All public members were documented: #252
- Use EnableBuffering to keep request payload around: #250
- Serilog default levels: #237
Thanks @josh-degraw for:
- AppDomain.ProcessExit will close the SDK: #242
- Adds PublicApiAnalyzers to public projects: #234
- NLog: Utilizes Flush functionality in NLog target: #228
- NLog: Set the logger via the log event info in SentryTarget.Write, #227
- Removed dev dependency from external dependencies 4d92ab0
- Use new
Sentry.Protocol
836fb07e - Use new
Sentry.PlatformAbsrtractions
#226
Major version bumped due to these breaking changes:
Sentry.Protocol
version 2.0.0- Remove StackTrace from SentryEvent #38 - StackTrace is either part of Thread or SentryException.
- Removed
ContextLine
#223 - Use
StackTrace
fromThreads
#222 FlushAsync
added toISentryClient
#214
Other Features:
- Debug logging for ASP.NET Classic #209
Fixes:
Microsoft.Extensions.Logging
ConfigureScope
invocation. #208, #210, #224 Thanks @dbraillonSentry.Serilog
Verbose level. #213, #217. Thanks @kanadaj
Fixes and improvements to the NLog integration: #207 by @josh-degraw
- Optionally skip module registrations #202 - (Thanks @josh-degraw)
- First NLog integration release #188 (Thanks @josh-degraw)
- Extensible stack trace #184 (Thanks @pengweiqhca)
- MaxRequestSize for ASP.NET and ASP.NET Core #174
- InAppInclude #171
- Overload to AddSentry #163 by (Thanks @f1nzer)
- ASP.NET Core AddSentry has now ConfigureScope: #160
- Don't override user #199
- Read the hub to take latest Client: 8f4b5ba
Bug fix: Don't override user #199
- First NLog integration release #188 (Thanks @josh-degraw)
- Extensible stack trace #184 (Thanks @pengweiqhca)
Feature:
- MaxRequestSize for ASP.NET and ASP.NET Core #174
- InAppInclude #171
Fix: Diagnostic log order: #173 by @scolestock
Fixed:
- Read the hub to take latest Client: 8f4b5ba1a3
- Uses Sentry.Protocol 1.0.4 4035e25
Feature
- Overload to
AddSentry
#163 by @F1nZeR - ASP.NET Core
AddSentry
has nowConfigureScope
: #160
Using new version of the protocol with fixes and features.
Fixed:
ASP.NET Core integration issue when containers are built on the ServiceCollection after SDK is initialized (#157, #103 )
Fixed:
- ASP.NET Core integration issue when containers are built on the ServiceCollection after SDK is initialized (#157, #103 )
Fixed:
- Serilog bug that self log would recurse #156
Feature:
- log4net environment via xml configuration #150 (Thanks Sébastien Pierre)
Includes all features and bug fixes of previous beta releases:
Features:
- Use log entry to improve grouping #125
- Use .NET Core SDK 2.1.401
- Make AddProcessors extension methods on Options public #115
- Format InternalsVisibleTo to avoid iOS issue: 94e28b3
- Serilog Integration #118, #145
- Capture methods return SentryId #139, #140
- MEL integration keeps properties as tags #146
- Sentry package Includes net461 target #135
Bug fixes:
- Disabled SDK throws on shutdown: #124
- Log4net only init if current hub is disabled #119
Thanks to our growing list of contributors.
- Added
net461
target to Serilog package #148
- Serilog Integration #118, #145
Capture
methods returnSentryId
#139, #140- MEL integration keeps properties as tags #146
- Revert reducing Json.NET requirements https://github.com/getsentry/sentry-dotnet/commit/1aed4a5c76ead2f4d39f1c2979eda02d068bfacd
Thanks to our growing list of contributors.
Lowering Newtonsoft.Json requirements; #138
Sentry
package Includes net461
target #135
Features:
- Use log entry to improve grouping #125
- Use .NET Core SDK 2.1.401
- Make
AddProcessors
extension methods on Options public #115 - Format InternalsVisibleTo to avoid iOS issue: 94e28b3
Bug fixes:
- Disabled SDK throws on shutdown: #124
- Log4net only init if current hub is disabled #119
- Automatic Captures global unhandled exceptions (AppDomain)
- Scope management
- Duplicate events automatically dropped
- Events from the same exception automatically dropped
- Web proxy support
- HttpClient/HttpClientHandler configuration callback
- Compress request body
- Event sampling opt-in
- Event flooding protection (429 retry-after and internal bound queue)
- Release automatically set (AssemblyInformationalVersionAttribute, AssemblyVersion or env var)
- DSN discovered via environment variable
- Release (version) reported automatically
- CLS Compliant
- Strong named
- BeforeSend and BeforeBreadcrumb callbacks
- Event and Exception processors
- SourceLink (including PDB in nuget package)
- Device OS info sent
- Device Runtime info sent
- Enable SDK debug mode (opt-in)
- Attach stack trace for captured messages (opt-in)
- Includes all features from the
Sentry
package. - BeginScope data added to Sentry scope, sent with events
- LogInformation or higher added as breadcrumb, sent with next events.
- LogError or higher automatically captures an event
- Minimal levels are configurable.
- Includes all features from the
Sentry
package. - Includes all features from the
Sentry.Extensions.Logging
package. - Easy ASP.NET Core integration, single line:
UseSentry
. - Captures unhandled exceptions in the middleware pipeline
- Captures exceptions handled by the framework
UseExceptionHandler
and Error page display. - Any event sent will include relevant application log messages
- RequestId as tag
- URL as tag
- Environment is automatically set (
IHostingEnvironment
) - Request payload can be captured if opt-in
- Support for EventProcessors registered with DI
- Support for ExceptionProcessors registered with DI
- Captures logs from the request (using Microsoft.Extensions.Logging)
- Supports configuration system (e.g: appsettings.json)
- Server OS info sent
- Server Runtime info sent
- Request headers sent
- Request body compressed
All packages are:
- Strong named
- Tested on Windows, Linux and macOS
- Tested on .NET Core, .NET Framework and Mono
Sample event using the log4net integration:
Download it directly from GitHub or using NuGet:
Integrations | NuGet |
---|---|
Sentry | |
Sentry.AspNetCore | |
Sentry.Extensions.Logging | |
Sentry.Log4Net |
Features and improvements:
SentrySdk.LastEventId
to get scoped idBeforeBreadcrumb
to allow dropping or modifying a breadcrumb- Event processors on scope #58
- Event processor as
Func<SentryEvent,SentryEvent>
Bug fixes:
- #97 Sentry environment takes precedence over ASP.NET Core
Download it directly below from GitHub or using NuGet:
Integrations | NuGet |
---|---|
Sentry | |
Sentry.AspNetCore | |
Sentry.Extensions.Logging | |
Sentry.Log4Net |
Features and improvements:
- Microsoft.Extensions.Logging (MEL) use framework configuration system #79 (Thanks @pengweiqhca)
- Use IOptions on Logging and ASP.NET Core integrations #81
- Send PII (personal identifier info, opt-in
SendDefaultPii
): #83 - When SDK is disabled SentryMiddleware passes through to next in pipeline: #84
- SDK diagnostic logging (option:
Debug
): #85 - Sending Stack trace for events without exception (like CaptureMessage, opt-in
AttachStackTrace
) #86
Bug fixes:
- MEL: Only call Init if DSN was provided https://github.com/getsentry/sentry-dotnet/commit/097c6a9c6f4348d87282c92d9267879d90879e2a
- Correct namespace for
AddSentry
https://github.com/getsentry/sentry-dotnet/commit/2498ab4081f171dc78e7f74e4f1f781a557c5d4f
Breaking changes:
The settings for HTTP and Worker have been moved to SentryOptions
. There's no need to call option.Http(h => h...)
anymore.
option.Proxy
was renamed to option.HttpProxy
.
New sample using GenericHost
Download it directly below from GitHub or using NuGet:
Integrations | NuGet |
---|---|
Sentry | |
Sentry.AspNetCore | |
Sentry.Extensions.Logging | |
Sentry.Log4Net |
Features:
- Support buffered gzip request #73
- Reduced dependencies from the ASP.NET Core integraiton
- InAppExclude configurable #75
- Duplicate event detects inner exceptions #76
- HttpClientHandler configuration callback #72
- Event sampling opt-in
- ASP.NET Core sends server name
Bug fixes:
- On-prem without chuncked support for gzip #71
- Exception.Data key is not string #77
Watch on youtube how to use the ASP.NET Core integration
Download it directly below from GitHub or using NuGet:
Integrations | NuGet |
---|---|
Sentry | |
Sentry.AspNetCore | |
Sentry.Extensions.Logging | |
Sentry.Log4Net |
Features:
- Using Sentry Protocol as a dependency
- Environment can be set via
SentryOptions
#49 - Compress request body (configurable: Fastest, Optimal, Off) #63
- log4net integration
- SDK honors Sentry's 429 HTTP Status with Retry After header #61
Bug fixes:
Init
pushes the first scope #55, #54Exception.Data
copied toSentryEvent.Data
while storing the index of originating error.- Demangling code ensures Function name available #64
- ASP.NET Core integration throws when Serilog added #65, #68, #67
Improvements to the docs like:
- Release discovery
ConfigureScope
clarifications- Documenting samples
Watch on youtube how to use the ASP.NET Core integration
Download it directly from GitHub or using NuGet:
Integrations | NuGet |
---|---|
Sentry | |
Sentry.AspNetCore | |
Sentry.Extensions.Logging | |
Sentry.Log4Net |
This third preview includes bug fixes and more features. Test coverage increased to 96%
Features and improvements:
- Filter duplicate events/exceptions #43
- EventProcessors can be added (sample 1, 2)
- ExceptionProcessors can be added #36 (sample 1, 2)
- Release is automatically discovered/reported #35
- Contexts is a dictionary - allows custom data #37
- ASP.NET integration reports context as server: server-os, server-runtime #37
- Assemblies strong named #41
- Scope exposes IReadOnly members instead of Immutables
- Released a documentation site
Bug fixes:
- Strong name
- Logger provider gets disposed/flushes events
Watch on youtube how to use the ASP.NET Core integration.
Download it directly from GitHub or using NuGet:
Integrations | NuGet |
---|---|
Sentry | |
Sentry.AspNetCore | |
Sentry.Extensions.Logging |
This second release includes bug fixes and more features. Test coverage increased to 93%
Features and improvements:
- Added
CaptureMessage
BeforeSend
callback errors are sent as breadcrumbsASP.NET Core
integration doesn't add tags added byMicrosoft.Extensions.Logging
- SDK name is reported depending on the package added
- Integrations API allows user-defined SDK integration
- Unhandled exception handler can be configured via integrations
- Filter kestrel log eventid 13 (application error) when already captured by the middleware
Bugs fixed:
- Fixed #28
- HTTP Proxy set to HTTP message handler
Download it directly from GitHub or using NuGet:
Integrations | NuGet |
---|---|
Sentry | |
Sentry.AspNetCore | |
Sentry.Extensions.Logging |
Our first preview of the SDK:
Main features:
- Easy ASP.NET Core integration, single line:
UseSentry
. - Captures unhandled exceptions in the middleware pipeline
- Captures exceptions handled by the framework
UseExceptionHandler
and Error page display. - Captures process-wide unhandled exceptions (AppDomain)
- Captures logger.Error or logger.Critical
- When an event is sent, data from the current request augments the event.
- Sends information about the server running the app (OS, Runtime, etc)
- Informational logs written by the app or framework augment events sent to Sentry
- Optional include of the request body
- HTTP Proxy configuration
Also available via NuGet: