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();
            }
        }