public override void OnExit(MethodExecutionArgs args) { _performanceTimer.StopTime(); var totalTime = _performanceTimer.ElapsedTime(); var aspectName = this.GetType().Name; string message; string jsonLogDetail; switch (_performanceType) { case PerformanceType.Info: if (!_logService.IsEnabledFor(LoggingEventType.Information)) { return; } message = $"The method runtime took {totalTime} seconds."; jsonLogDetail = args.LogMethodDetail(message, aspectName).ToJson(); _logService.InformationLog(jsonLogDetail); break; case PerformanceType.Warning: if (!_logService.IsEnabledFor(LoggingEventType.Warning)) { return; } if (totalTime > _interval) { message = $"The specified runtime is {_interval} seconds, It took {totalTime} seconds. Method runtime and specified runtime difference {totalTime - _interval} seconds."; jsonLogDetail = args.LogMethodDetail(message, aspectName).ToJson(); _logService.WarningLog(jsonLogDetail); } break; default: throw new ArgumentOutOfRangeException(); } }