public IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext) { var log = new TyrionBankerLogger(input.MethodBase.DeclaringType.Name); IMethodReturn result = null; try { var sb = new StringBuilder(); for (int i = 0; i < input.Arguments.Count; i++) { var arg = input.Arguments[i]; if (sb.Length > 0) { sb.Append(", "); } if (input.Arguments.ParameterName(i).ToLower() == "password") { sb.AppendFormat("{0}:(XXXX)", input.Arguments.ParameterName(i)); } else { sb.AppendFormat("{0}:{1}", input.Arguments.ParameterName(i), arg); } var start = DateTime.UtcNow; log.Trace("Start " + sb, null, input.MethodBase.Name, new StackFrame(5, true)?.GetFileLineNumber() ?? 0); result = getNext()(input, getNext); var end = DateTime.UtcNow; if (result.Exception != null) { log.Error(result.Exception.Message, result.Exception, null, input.MethodBase.Name, new StackFrame(5, true)?.GetFileLineNumber() ?? 0); } else { log.Trace($"End({(end - start):mm\\:ss\\.fff}) result:{result.ReturnValue}", null, input.MethodBase.Name, new StackFrame(5, true)?.GetFileLineNumber() ?? 0); } } } catch (Exception ex) { log.Error(ex); throw; } return(result); }
public WebAPIManager() { Log = new TyrionBankerLogger(typeof(WebAPIManager)); }