RayLynn 2023-03-04 11:10 采纳率: 0%
浏览 14

C# 如何在发生报错时,获取调用者参数信息?

C# 如何在发生报错时,获取调用者参数信息?

为了方便错误捕获,我希望在触发报错的时候,能知道调用者、参数信息,将其序列化写入到日志
请问如何做到?

  • 写回答

1条回答 默认 最新

  • wanghui0380 2023-03-04 11:43
    关注

    现在有两种方式:
    1.传统的方式:用StackTrace或者StackFrame

    StackTrace st = new StackTrace(true);
                        LogHelper.debug(st.GetFrame(1).GetMethod().Name.ToString());
                        LogHelper.debug("调试信息", e);
                        LogHelper.debug("调试信息"+ temp);
                        LogHelper.debug($"调试信息url:{Baseurl} 参数:"+JsonConvert.SerializeObject(parm));
    
    

    2.net4.5 以后新增的一系列的特性

     public void TraceMessage(string message,
                [CallerMemberName] string memberName = "",
                [CallerFilePath] string sourceFilePath = "",
                [CallerLineNumber] int sourceLineNumber = 0)
        {
            Trace.WriteLine("message: " + message);
            Trace.WriteLine("member name: " + memberName);
            Trace.WriteLine("source file path: " + sourceFilePath);
            Trace.WriteLine("source line number: " + sourceLineNumber);
        }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 3月4日