protected override void OnAfter(IInvocation invocation) { if (_stopwatch.Elapsed.TotalSeconds > _inverval) { LogDetailWithPerformance logDetailWithPerformance = GetLogDetail(invocation); logDetailWithPerformance.Interval = (int)_stopwatch.Elapsed.TotalSeconds; _loggerServiceBase.Warn(logDetailWithPerformance); } _stopwatch.Reset(); }
private LogDetailWithPerformance GetLogDetail(IInvocation invocation) { var logParameters = new List <LogParameter>(); for (int i = 0; i < invocation.Arguments.Length; i++) { logParameters.Add(new LogParameter { Name = invocation.GetConcreteMethod().GetParameters()[i].Name, Value = invocation.Arguments[i], Type = invocation.Arguments[i].GetType().Name }); } var logDetailWithPerformance = new LogDetailWithPerformance { MethodName = string.Format($"{invocation.Method.ReflectedType.FullName}.{invocation.Method.Name}"), LogParameters = logParameters, DateTime = DateTime.Now }; return(logDetailWithPerformance); }