在程序中保留调试行的标准方式

本文关键字:标准 方式 调试 程序 保留 | 更新日期: 2023-09-27 18:22:13

我想在程序中添加一些调试行。一旦执行完语句,它就会将当前状态记录到一个文件中
我用以下方式做到了。

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

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

但我不知道这个标准是什么。请告诉我。

登录的基础我使用Log4Net

在程序中保留调试行的标准方式

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

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

  • 它将描述性消息从它最有用的地方移开——内联代码
  • 日志是原始开发人员最常用的,因此用日语获取日志(如果日志资源字符串经过适当本地化)对英语开发人员来说用处不大,反之亦然
  • 避免某些字符串(用于日志记录的字符串)的本地化可能不方便,本地化它们不是免费的

如果只是为了调试目的,我会执行以下操作:

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

为了区别,如果你是在发布构建或调试构建中,你可以使用以下两件事:

#if DEBUG
// enable all tracing
#endif

或者,如果调试器已附加,您也希望您的realease构建会带来消息

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

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