Вы можете сделать синтаксис немного чище с помощью нескольких простых методов расширения в Logger, это не требует дополнительных сборок, чем то, что у вас уже есть, и вы можете подключить его сразу. И это можно использовать повторно, если вы собираетесь делать это несколько раз по всему коду.
public static class LoggerExtentions
{
public static void StartTimerLogInformation(this Logger logger, Stopwatch stopWatch, string method)
{
stopWatch.Reset();
stopWatch.Start();
logger.LogInformation(string.Format("Calling {0} at {1}", method, DateTime.Now.ToString()));
}
public static void StopTimerLogInformation(this Logger logger, Stopwatch stopWatch, string method)
{
stopWatch.Stop();
logger.LogInformation(string.Format("{0} returned at {1}", method, DateTime.Now.ToString()));
logger.LogInformation(string.Format("{0} took {1} milliseconds", method, stopWatch.ElapsedMilliseconds));
stopWatch.Reset();
}
}
тогда вы можете просто использовать этот код вместо того кода, который у вас был в исходном посте
Logger logger = new Logger();
Stopwatch stopWatch = new Stopwatch();
logger.StartTimerLogInformation(stopWatch, "SomeObject.SomeMethod");
SomeResponse response = someObject.SomeMethod(someParam);
logger.StopTimerLogInformation(stopWatch, "SomeObject.SomeMethod");