如何在日志文件中标记当前方法?

时间:2011-02-06 22:19:01

标签: c# .net exception obfuscation

我正在写一个异常记录器类。我的问题是:用什么来标记当前的方法?除了它的名称,导致代码被混淆,因此无法使用。

3 个答案:

答案 0 :(得分:3)

您可以创建自己的属性并使用属性修饰方法。 像[MethodName("WriteXMLData")]

这样的东西

然后,您可以让logger类对日志记录期间传递给它的MemberInfo对象执行一些反射。

This是一个很好的教程,用于定义和查询自己的属性。

答案 1 :(得分:0)

您可能想看一下那里的一些日志框架。我偏爱NLog。它易于配置并具有很大的灵活性。

答案 2 :(得分:-1)

您可以获取有关特定异常的所有数据,并将其记录到数据源:

这里你可以提取关于给定异常的一些信息:

protected void Application_Error( object sender, EventArgs e )
{
    Exception Exc = null;
    try
    {
        Exc = Server.GetLastError();
        if(Exc.InnerException != null)
            Exc = Exc.InnerException;

        // Method name + line number + column
        System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(Exc, true);
        string ExtraData = "Name : {0}, Line : {1}, Column : {2}";
        ExtraData = String.Format(ExtraData, trace.GetFrame(0).GetMethod().Name, trace.GetFrame(0).GetFileLineNumber(), trace.GetFrame(0).GetFileColumnNumber());
        // exception message
        Exc.Message;
        // page name
        Request.Url.ToString();
        // stack trace
        Exc.StackTrace; 
    }
}