我想在我的程序中添加一些调试行。一旦执行完语句,它会将当前状态记录到一个文件中。
我已经通过以下方式做到了这一点。
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
发布于 2013-07-12 05:54:51
这是一种非常正常的日志记录方式。
使用资源文件进行日志记录通常没有意义,因为:
发布于 2013-07-12 06:12:46
如果只是为了调试目的,我将执行以下操作:
设置适当的调试级别。然后,应该使用显示所有消息的级别来构建调试版本。发布版本通常不需要调试输出。因此,禁用release输出的消息级别。
为了区别,如果您是在发布版本或调试版本中,您可以使用以下两种方法:
#if DEBUG
// enable all tracing
#endif
或者,如果您还希望您的realease构建在附加了调试器时带来消息
if(System.Diagnostics.Debugger.IsAttached)
{
// Someone has attached a debugger, so give more output
}
如果需要,您还可以使用一个方法包装日志调用,该方法用于检查调试/附加的调试器。
https://stackoverflow.com/questions/17607853
复制