在程序中保留调试行的标准方式
本文关键字:标准 方式 调试 程序 保留 | 更新日期: 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
}
如果需要,还可以使用一个只检查调试/附加调试器的方法来包装日志调用。。