public async Task Log(object result, EffAwaiterBase effect) { var log = new ResultLog { CallerFilePath = effect.CallerFilePath, CallerLineNumber = effect.CallerLineNumber, CallerMemberName = effect.CallerMemberName, Result = result, Parameters = TraceHelpers.GetParametersValues(effect.State), LocalVariables = TraceHelpers.GetLocalVariablesValues(effect.State), }; TraceLogs.Add(log); }
public async Task Log(Exception ex, EffAwaiterBase awaiter) { var log = new ExceptionLog { CallerFilePath = awaiter.CallerFilePath, CallerLineNumber = awaiter.CallerLineNumber, CallerMemberName = awaiter.CallerMemberName, Exception = ex, Parameters = TraceHelpers.GetParametersValues(awaiter.State), LocalVariables = TraceHelpers.GetLocalVariablesValues(awaiter.State), }; if (!ex.Data.Contains("StackTraceLog")) { var queue = new Queue <ExceptionLog>(); queue.Enqueue(log); ex.Data["StackTraceLog"] = queue; return; } ((Queue <ExceptionLog>)ex.Data["StackTraceLog"]).Enqueue(log); }