さまざまな方法で要した時間をログに記録する必要があります。エンタープライズ サーバー アプリケーションのコード ブロックは、現在ストップウォッチを使用しています。実装したサンプル コードは次のとおりです。
var sw = new Stopwatch();
sw.Start();
DoSomething();
sw.Stop();
logManager.LogInformation(String.Format("Time taken by DoSomething function is {0} ms.", sw.ElapsedMilliseconds));
私は多くの .cs ファイルの多くの場所でこのように書いています。時間を測定するための一般的な方法または拡張機能を 1 つ記述することで、この手作業を減らしたかっただけです。このために、実際の方法を次のような時間測定方法でラップすることを考えています。
long elapsedMilliseconds = ExecuteAndGetTimeTaken(this.DoSomething());
または、次のような一般的な拡張メソッド
long elapsedMilliseconds = this.DoSomething().GetTimeTaken();
メソッドが時間とともにメッセージをログに記録する場合は素晴らしいでしょう。
long elapsedMilliseconds = ExecuteAndGetTimeTaken(this.DoSomething(),logManager,message);
目的を解決するために共通のクラス/メソッドまたは拡張機能を記述する方法は?