Beispiel #1
0
 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();
 }
Beispiel #2
0
        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);
        }