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