【问题标题】:Is it common to write Diagnostics class in app [closed]在应用程序中编写诊断类是否常见[关闭]
【发布时间】:2013-12-12 10:02:56
【问题描述】:

在应用程序中写Diagnostics 类是常见的吗? - 哪些不仅仅是转储堆栈跟踪?如果是的话,需要在其中做些什么?

我正在考虑用

Diagnostics
  • 各种重载的diagnose(Class thisInstance, Exception ex) 一个对应于我的应用程序中每个更容易发生异常的类。
  • analyzeEnvironmentVariables()
  • analyzeAppSettings()
  • analyzeServers()
  • diagnodeAll() :将创建所有类的实例并查看它们是否正确初始化

我会打电话给diagnose()catch()

catch(Exception ex)
{
    Diagnostics.diagnose(this,ex);
}

在每个diagnose(),我都在想

  • 转储堆栈跟踪
  • 转储和分析 thisInstance 的成员
  • 致电analyzeEnvironmentVariables();
  • 致电analyzeAppSettings();
  • 致电analyzeServers();
  • 致电diagnoseAll();
  • 看看能不能解决问题
  • 尝试重新启动应用三次,如果始终失败则停止
  • 最后会回显诊断结果

这是否正常进行?我知道如果该类不能基于对各种参数的分析来实际诊断事物,那么整个类可能会减少到某种扩展的日志记录功能。但是还是想再想一想,想知道平时都是怎么做的。

【问题讨论】:

    标签: c# java debugging logging


    【解决方案1】:

    这不是一个坏主意 - 通常异常时的行为在大多数情况下是相似的,至少在其致命时是这样的,因此重构因此只有一个实现是一个好举措。

    但是,请考虑在这样做时不要过于依赖其他类 - 您不想将整个系统束缚在依赖结中。还要考虑如果 Diagnostics 类本身抛出异常会发生什么。你不想以意想不到的方式压制和爆发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-18
      • 1970-01-01
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多