0

我想在我的程序中添加一些调试行。执行完语句后,它会将当前状态记录到文件中。
我已经通过以下方式做到了。

    public int? DoWork(int x, int y)
    {
        Log.Write("Received inputs. X an Y values are:"+x+","+y);
        bool result = ChekData(x);
        if (!result)
        {
            Log.Write("First input is not valid");
            return null;
        }

        result = ChekData(y);
        if (!result)
        {
            Log.Write("Second input is not valid");
            return null;
        }
        Log.Write("Valid input found");
        ....
        ....
    }

我觉得这不是这样做的标准。在代码中保留这样的文本。搜索后我发现使用资源文件可以保存这些消息,如名称值对。

但我不知道那个标准。请给我提意见。

基本上我正在使用 Log4Net 进行日志记录

4

2 回答 2

1

如果仅出于调试目的,我将执行以下操作:

设置适当的调试级别。然后应该使用一个级别构建调试版本以显示所有消息。发布版本通常不需要调试输出。因此禁用发布输出的消息级别。

为了区分您是在发布版本还是调试版本中,您可以使用以下两件事:

#if DEBUG
// enable all tracing
#endif

或者如果您还希望您的发布版本在附加了调试器时带来消息

if(System.Diagnostics.Debugger.IsAttached)
{
    // Someone has attached a debugger, so give more output 
}

如果需要,您还可以使用仅检查调试/附加调试器的方法来包装日志调用。

于 2013-07-12T06:12:45.700 回答
1

这是非常正常的日志记录方式。

使用资源文件进行日志记录通常没有意义,因为:

  • 它将描述性消息从最有用的地方移开 - 内联代码
  • 原始开发人员最常使用的日志,因此获取日语日志(如果日志资源字符串正确本地化)对讲英语的开发人员很少有用,反之亦然。
  • 避免某些字符串(用于记录的字符串)的本地化可能不方便,对它们进行本地化不是免费的......
于 2013-07-12T05:54:51.450 回答