管理调试代码

时间:2012-05-25 12:16:01

标签: debugging language-agnostic refactoring project-management

在某些项目中使用IDE的调试变得非常长,特别是在使用图形时,因此有时我使用调试代码,根据环境打印输出值,有时在项目本身,有时在控制台上。但是当项目完成后,很难找到调试代码,并将其删除,当不需要的东西弹出时,它看起来很奇怪。我还是学生,所以现在学习它会更好,如何管理呢?

我在搜索时找不到合适的答案,但我有几点想法:

  1. 测试模块后立即删除代码,因此找不到代码。它可以工作,但是当模块必须稍后进行测试时(在更高级别),它会再次被添加,而不是被删除的程度,但仍然。

  2. if包围它以确保它仅在debugging标志为真时运行,并将其保留在项目的最终版本中。

  3. 使用项目规划调试代码,将方法和类分开(如果可能)并擦除调用和对象以及何时完成。

  4. 管理它的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

最简单的方法是使用debugging标记。

如果此标志是编译器常量(或其他硬编码),则需要重新编译项目,如果您想要/不想调试。

更好的方法是使标志使用配置文件/命令行参数中的值 - 这样您就可以控制调试而无需重新编译项目。

更好的方法是使用功能强大的日志库(如果有的话)并使用它的设施 - 优点是你可以更好地微调你想要记录的内容,在哪里以及以什么格式

答案 1 :(得分:0)

最佳方法是在代码中调试变量

set isDebugEnabled=true // in case of development server
set isDebugEnabled=false // in case of production server

或者也可以在生产中管理日志记录,以便跟踪问题 在开发服务器上不需要达到这个程度

var isDebugEnabled=ConfigurationManager.Appsettings["isDebugEnabled"].ToString();
if(Convert.ToBoolean(isDebugEnabled))
{
  Console.log("Log Message");
}

如果不支持Console.Log,请不要忘记检查window.console语句将抛出异常,因此:

var isDebugEnabled=ConfigurationManager.Appsettings["isDebugEnabled"].ToString();
if(Convert.ToBoolean(isDebugEnabled) && window.Console)
{
  Console.log("Log Message");
}
else
{
  //Follow file logging mechanism.
}