WPFアプリケーションでエラーが発生したことを報告するための標準システムまたは.NET APIはありますか、または常にカスタムソリューションを実装する必要がありますか?デスクトップアプリケーションでエラーを報告する標準的な方法はありますか?
答えて
私が知っている方法は、あなたがエラーをキャッチしたときに、そのようなものです:あなたがメモ帳でそれらのすべてを置くためにGoogle検索を行う場合、これらのエラーをログに記録するため
try
{
....
}
catch (Exception exception) // catching a general exception is usually a bad idea, would be good to specialise it like FormatException
{
MessageBox.Show(exception.ToString()); // this is usefull when debugging to see exactly what happened
throw;
}
、メソッドのpolentyは、オンラインtheresのですあなたのアプリケーションフォルダにクライアントクラッシュがあるときに、ポップアップウィンドウを追加して、メモ帳を電子メールで送信するように要求することができます。私が行った研究では、カスタムソリューションだけが見つかりました
話し手:私はdownvoterではない。私は識別子として 'exceptionName'を使用せず、' exception'だけを使用します。一方、メッセージボックスを表示した後、例外(つまり 'throw;')を再スローする必要があります。あなたの提案は非常に限られていますが、私はOPが潜在的な解決策を求める前にこれを知っていたと思います... –
@Matias、ええ、私の担当者から見ることができます、まだ学習しています。 OPは何をすべきかわからないので、ちょうどスターターアイデアを与えていた – JohnChris
オクラホマ、あなたにもあなたの提案をします。より良いエラー報告は、 'AppDomain.UnhandledException'を使用してWindowsイベントログに報告します。D –
log4netはどうですか? https://logging.apache.org/log4net/
それはあなたが複数のログターゲットに出力することができます:
- は、準備されたステートメントまたはストアドプロシージャのいずれかを使用してデータベースにログイベントを書き込みます。
- 色の強調表示されたロギングイベントをANSI端末ウィンドウに書き込みます。
- ロギングイベントをASPトレースコンテキストに書き込みます。これらは、ASPページの最後またはASPトレースページで表示できます。
- 色の強調表示されたロギングイベントをアプリケーションのWindowsコンソールに書き込みます。
- アプリケーションのコンソールにログイベントを書き込みます。イベントは、標準ストリームまたは標準エラーストリームのいずれかに移動できます。
- ログイベントを.NETシステムに書き込みます。
- ログイベントをWindowsイベントログに書き込みます。
- ファイルシステム内のファイルにログイベントを書き込みます。
- ログイベントをローカルsyslogサービスに書き込みます(UNIXのみ)。
- ログイベントをメモリバッファに格納します。
- ログイベントをWindows Messengerサービスに書き込みます。これらのメッセージは、ユーザー端末のダイアログに表示されます。
- ログイベントをデバッガに書き込みます。アプリケーションにデバッガがない場合、システムデバッガはその文字列を表示します。アプリケーションにデバッガがなく、システムデバッガがアクティブでない場合、メッセージは無視されます。
- UDPネットワーキングを使用してリモートsyslogサービスにログイベントを書き込みます。
- .NET Remotingを使用して、リモートシンクにログイベントを書き込みます。
- ファイルシステム内のファイルにログイベントを書き込みます。 RollingFileAppenderは、日付またはファイルサイズの制約に基づいて複数のファイルにログを記録するように構成できます。
- ロギングイベントを電子メールアドレスに送信します。
- ロギングイベントを電子メールアドレスに送信しますが、電子メールをSMTP経由で直接送信するのではなく、構成可能なディレクトリに書き込みます。
- クライアントはTelnet経由で接続し、ロギングイベントを受信します。
- ログイベントを.NETトレースシステムに書き込みます。
- UdpClientを使用して、接続していないUDPデータグラムとしてロギングイベントをリモートホストまたはマルチキャストグループに送信します。
あなたはコメントを読むことができますか? log4netのようなフレームワークをロギングしない –
- 1. ネイティブオートコンプリートを防ぐ標準的な方法はありますか?
- 2. UMLには標準的な方法がありますか?
- 3. 標準的なdjangoサイトマップとWagtailサイトマップを混在させる標準的な方法はありますか?
- 4. FreeImageでTIFFファイルにテキスト情報を追加する標準的な方法はありますか?
- 5. doctrineオブジェクトをキャッシュする標準的な方法はありますか?
- 6. Pythonでインターフェース注釈を行う標準的な方法はありますか?
- 7. 資格情報をバックエンドWebサービスに転送する標準的な方法はありますか?
- 8. jQuery Mobileでエラーを表示する標準的な方法は何ですか
- 9. QCompleterなしでQLineEditからドロップダウンメニューを作成する標準的な方法はありますか?
- 10. ExtJSの標準的なデザインパターンはありますか
- 11. Elixirには標準的なcurry()関数がありますか?
- 12. 標準属性の網羅的なリストはありますか?
- 13. URLをIRCユーザーに関連付ける準標準的な方法はありますか?
- 14. Golangのパッケージ間でデータベースセッションを開いたままにする標準的な方法はありますか?
- 15. grailsに標準的な監査追跡方法がありますか?
- 16. javaのマウスイベントのさまざまなオプションを処理する標準的な方法はありますか?
- 17. SQLを動的に生成する標準的な方法はありますか?
- 18. mysql_num_rowsは効率的かつ/または標準的な方法ですか?
- 19. Linuxに割り当てられたヒープブロックを列挙する標準的な方法はありますか?
- 20. ISO標準命名の標準はありますか?
- 21. ISO8601形式のタイムスタンプで無効な値を示す標準的な方法はありますか?
- 22. @ KafkaListenerアノテーションを使用する際にオフセットをリセットする標準的な方法はありますか?
- 23. PDF文書のデータに意味的にタグを付ける標準的な方法はありますか?
- 24. document.open呼び出しで開くhrefを定義する標準的な方法はありますか?
- 25. Qtアプリケーションでウィンドウを管理する標準的な方法はありますか?
- 26. groovyでラクダのケースストリングを管理する標準的な方法はありますか?
- 27. オペレーティングシステム間でファイルに「タグ」を追加する標準的な方法はありますか?
- 28. PythonでXYデータを保存する標準的な方法はありますか?
- 29. ダッシュボードウィジェットで更新を確認する標準的な方法はありますか?
- 30. グローバルスコープでコードを実行するための標準的な方法はありますか?
エラーをUIまたはログに報告することを意味しますか? –
Windowsエラー報告のようなものですが、お使いのアプリケーションに合ったものです。 –
したがって、いくつかのエラー報告API /フレームワークは、log4netのようなフレームワークを記録しません。 –