sentry-dotnet-sdk は何をしますか?
.NET 向けの完全な Sentry SDK セットアップ。ASP.NET Core、MAUI、WPF、WinForms、Blazor、Azure Functions、その他の .NET アプリケーションにエラーモニタリング、トレーシング、プロファイリング、ロギング、または Cron を設定する際に使用します。「Sentry を .NET に追加」「C# で Sentry をインストール」などと依頼されたときに使用します。
使用方法
-
NuGet パッケージのインストール:
dotnet add package Sentry特定のフレームワーク向けの追加パッケージ:
- ASP.NET Core:
Sentry.AspNetCore - MAUI:
Sentry.Maui - WPF/WinForms:
Sentry(基本パッケージ) - Blazor:
Sentry.AspNetCore - Azure Functions:
Sentry.AzureFunctions.Worker
- ASP.NET Core:
-
DSN の設定: 環境変数
SENTRY_DSNを設定するか、以下のようにコード内で直接設定します:using Sentry; SentrySdk.Init(options => { options.Dsn = "https://[email protected]/0"; // プロダクションでは環境変数から取得 // options.Dsn = Environment.GetEnvironmentVariable("SENTRY_DSN"); }); -
ASP.NET Core でのセットアップ:
Program.csに以下を追加:builder.WebHost.UseSentry(); // オプションで設定を構成 builder.WebHost.UseSentry(options => { options.Dsn = "https://[email protected]/0"; options.TracesSampleRate = 0.1; // トレーシングのサンプルレート (10%) options.ProfilesSampleRate = 0.1; // プロファイリングのサンプルレート (10%) }); -
手動でのエラーキャプチャ:
using Sentry; try { // 処理 } catch (Exception ex) { SentrySdk.CaptureException(ex); } -
トレーシングの設定:
// ASP.NET Core では自動トレーシング // 手動トランザクション: var transaction = SentrySdk.StartTransaction( "operation", "my-transaction" ); var span = transaction.StartChild("sub-operation"); // ... 処理 span.Finish(); transaction.Finish(); -
ロギングの統合:
appsettings.json:{ "Sentry": { "Dsn": "https://[email protected]/0", "MinimumEventLevel": "Warning", "MinimumBreadcrumbLevel": "Information" } } -
ユーザーフィードバック:
SentrySdk.CaptureUserFeedback( eventId, "[email protected]", "What happened?", "User Name" );
対応プラットフォーム
- ASP.NET Core 2.0+ / 3.0+ / 5.0+ / 6.0+ / 7.0+ / 8.0+
- .NET MAUI
- WPF (.NET Core/5+ / .NET Framework 4.6.1+)
- WinForms (.NET Core/5+ / .NET Framework 4.6.1+)
- Blazor Server / WebAssembly
- Azure Functions (Isolated Worker)
- Console / サービスアプリケーション
- Xamarin.Forms (レガシー)
- Unity (実験的)
注意点
- DSN は機密情報です。ソース管理にはコミットしないでください。環境変数または安全な構成ストアを使用してください。
SentrySdk.Initはアプリケーションの起動時に一度だけ呼び出します。- プロファイリングは .NET 6 以降で利用可能です。
- Cron モニタリング (Check-in) は
SentrySdk.CaptureCheckInを使用します。