例外がない場合の .NET でのスタック トレースのログ記録
コードをデバッグするときに、現在のスタック トレースを出力することは、コードを理解するために非常に貴重です。プログラムの流れと問題の特定。ただし、例外が発生していない状況では、try-catch ブロックまたは Exception.StackTrace プロパティを使用する標準的なアプローチは機能しません。
解決策
現在のスタック トレースを例外なく出力するには、System.Diagnostics.StackTrace を利用します。 class:
System.Diagnostics.StackTrace t = new System.Diagnostics.StackTrace();
には、プログラムのエントリ ポイントに至るまで、現在実行中のメソッドやその呼び出し元などに関する情報が含まれます。
例
次のコードを考えてみましょう:
public void executeMethod() { logStackTrace(); method(); }
executeMethod() を呼び出した場合
at executeMethod() in C:\Path\To\MyCode.cs:line 10 at method() in C:\Path\To\MyCode.cs:line 15 at Program.Main() in C:\Path\To\MyMain.cs:line 20
このトレースには、例外が発生していないにもかかわらず、呼び出しスタックが表示されます。
追加リソース
さらに詳しいデバッグ ツールについては、System.Diagnostics 名前空間を調べてください。 NLog、log4net、Enterprise Library などのログ フレームワークは、スタック トレースをキャプチャする機能を含む、包括的なログ ソリューションを提供します。
以上が例外を発生させずに .NET でスタック トレースを記録するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。