[asp.net]在 c# 中调用测井方法在捕获或在每个方法在哪里?

发布时间: 2016/11/9 21:00:29
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

事实上,我想要将数据记录方式,它应该有的方法,应用经历了在 c# 中,如果有错误然后错误内容也应记录。问题是在哪里调用日志方法内捕捉或在每一种方法?近 200 方法的那样。

我写这样的代码︰

    public static bool Logging(System.Reflection.MethodBase methodInfo)
     {
        var fullMethodName = methodInfo.DeclaringType.FullName + "." + methodInfo.Name;
        if (error_flag == false)
        {
            using (StreamWriter outputFile = new StreamWriter(path + @"\log.txt", true))
            {
                outputFile.WriteLine(fullMethodName + ": OK");
            }
        }
        else
        {
            using (StreamWriter outputFile = new StreamWriter(path + @"\log.txt", true))
            {
                outputFile.WriteLine("\n\n --> Error in : " + fullMethodName);
            }
        }
        return true;
    }

    //Logging Method 2
    public static bool WriteErrorLog(Exception ErrorMessage)
    {
        using (StreamWriter outputFile = new StreamWriter(path + @"\log.txt", true))
        {
            outputFile.WriteLine("{0} Exception caught.", ErrorMessage);
        }
        return true;
    }

和我要从哪里调用这些方法??

解决方法 1:

我建议采用以下方法︰

static void Main()
{
    try
    {
        Log.Info("Start of process");

        string input = StepOne();
        StepTwo(input);

        Log.Info("End of process");
    }
    catch(Exception e)
    {
        Log.Error(e);
    }
}

public static string StepOne()
{
    Log.Info("StepOne Completed");

    return "Step One";
}

public static void StepTwo(string input)
{
    Log.Info("StepTwo, input: " + input);

    throw new ArgumentNullException("input");
}       
  1. 而不是滚动您自己,使用现有的日志框架,例如Log4Net
  2. 在最高的可能层添加 try-catch,让错误泡沫,直到你真的可以明智与他们的东西。
  3. 添加日志记录消息到哪里明智要做到这一点,这将是最有用的信息的功能,例如你可以登录方法投入。
  4. 避免使用反射获取的方法名称,您可能不需要登录个人方法名称。反正所有的信息将在堆栈跟踪。
赞助商