私が働いている会社では、ASP.netアプリケーションのエラーを処理するためのエラーログクラスを作成しました。サーバーに追加のソフトウェア(nLog、log4netなど)をインストールすることは許可されていないため、これはカスタムクラスです。
私は現在、2つのプロジェクトでこれを使用しており、いくつかの良い結果が得られています。現在、ページエラーとアプリケーションエラーの原因となるエラーをトラップしています。エラーメッセージとすべての内部例外を送信して保存します。
私が今抱えている問題は、再現方法がよくわからないというエラーを受け取っていることです。どのユーザーからもエラーレポートを聞いたことがありません。彼らが何をしているのか、あるいは彼らがこれらをエラーと見なしているのかどうかはわかりません。
各ページ、または追加情報が必要なページにイベントログを作成することを考えています。それをページ上のSession変数として保持し、それにイベントを書き込みます(関数の開始/終了、変数の変更など)。次に、エラーが呼び出された場合にのみ、エラーメッセージと一緒に送信して、何が起こっているのかをより正確に把握できるかどうかを確認します。この方法で実行しても、すべてのユーザーがアプリケーションにアクセスしたときに大量のイベントログが表示されないことを期待しています。ただ、1人のユーザーでエラーが発生する直前に実行したいだけです。
私が方法で気をつけるべき落とし穴を知っていますか?
探すべきことについて何かアドバイスはありますか?
アップデート:
@Saret:私はあなたがその応答でどこから来ているのかを理解し、同意します。私はこの会社にかなり慣れていませんが、彼らがどのように物事を行うかを学ぶ必要があります。過去に、この製品を使用したり、このオープンソースプロジェクトを使用したりするのがどのように素晴らしいかについて同僚と話し合ったことがあります。問題は、安全なシステムに取り組んでおり、これらのものを取得するための承認を得るには、多くの時間、トップカバー、およびすべての官僚的形式主義の処理が必要になることです。優れたエラーログシステムを導入することが重要であり、現在何も使用されていないため、状況をさらに調査します。
@Jim Blizard:どこかにすべてを記録/保存するのをやめて、エラーの原因となった状況にとって何が重要かを調べたいと思いました。ロベルト・バロスがリンクしたアーティカルで語られている情報の過負荷に陥りたくありませんでした。私の現在の考え方は、各ページのメモリに文字列を保持し、エラーが発生した場合は、ページのPage_Errorイベントでその文字列を取得し、ログに記録される例外に添付することです。そうすれば、発生したエラー/例外のみをログに記録し、そのエラーとともにイベントログを保存します。何も起こらない場合、作成されていたそのログはビットバケットにドロップされ、二度と表示されなくなります。
@Roberto Barros:そのリンクをありがとう、どこかで読んだことを覚えていますが、保存するのを忘れていました。