1

C#コンソールアプリケーションがあります。いくつかのデータソースから情報を収集し、それらを別のデータソースに一元化します。時折、それはいくつかのバグにぶつかります-接続文字列は機能しなくなります。スキーマの変更など。

現時点では、を使用してデバッグ情報を出力してConsole.WriteLine();います。これは明らかにひどい考えです...特に、アプリケーションは毎晩実行されるスケジュールされたタスクであるため、このデバッグ情報は表示されません。

プログラムが失敗したときに簡単なデバッグを可能にするにはどうすればよいですか?この場合の私のベストプラクティスは何ですか?

どうもありがとう。

4

6 に答える 6

3

ロギングライブラリを使用できます。 log4netが最も人気のある選択肢のようです。

于 2012-07-05T13:31:35.587 に答える
3

を使用しDebug.WriteLine()ます。割り当てられたリスナーに出力されます(デフォルトではVisual Studioの出力ウィンドウのみですが、コンソールに接続できます)。これが本番環境の問題のトラブルシューティングのためである場合は、アプリケーションにログを実装することを強くお勧めします。

于 2012-07-05T13:31:43.363 に答える
2

System.Diagnosticsをチェックしてください。 初心者 にとっては、デバッグクラスの方がより良い選択です。Console

log4net(@Tim S.によってリンクされているように)は、さまざまなレベルの重大度での一般的な診断出力に役立つフレームワークです。

于 2012-07-05T13:31:51.607 に答える
1

さまざまなロギング/エラー戦略について読む必要があります。

ログに必要な形式を定義できるlog4netなどのライブラリを使用することから始めることをお勧めします。

于 2012-07-05T13:31:58.717 に答える
1

EventLogこのクラスを使用して、アプリケーションイベントログ(または独自のカスタムログ)に書き込むことをお勧めします。または、独自に選択したカスタムログファイルに書き込むこともできます。ただし、イベントログには、どのマシンからでもリモートで簡単に表示できるという利点があります。さらに、このアプリケーションが本当に無人の場合、システム管理者に失敗したときに電子メール通知を送信させることができます。

于 2012-07-05T13:33:22.303 に答える
0

log4netEnterpriseLibraryLoggingBlockなどのロギングフレームワークが必要です。これらのフレームワークを使用すると、データベース、ログファイル、またはイベントログにログインして、後で表示および取得できます。

于 2012-07-05T13:34:16.567 に答える