WEB开发网
开发学院软件开发C语言 Effective C# 原则36:利用.Net运行时诊断 阅读

Effective C# 原则36:利用.Net运行时诊断

 2009-02-19 08:15:52 来源:WEB开发网   
核心提示: MyAssemblyDiagnostices类根据一个开关来为这个程序集创建诊断信息,为了创建信息,Effective C# 原则36:利用.Net运行时诊断(4),调用按常规调用重载的Msg的任何一个就行了:public void Method1( ){MyAssemblyDiagnos

MyAssemblyDiagnostices类根据一个开关来为这个程序集创建诊断信息。为了创建信息,调用按常规调用重载的Msg的任何一个就行了:

public void Method1( )
{
 MyAssemblyDiagnostics.Msg( TraceLevel.Info,
  "Entering Method1." );
 bool rVal = DoMoreWork( );
 if( rVal == false )
 {
  MyAssemblyDiagnostics.Msg( TraceLevel.Warning,
   "DoMoreWork Failed in Method1" );
 }
 MyAssemblyDiagnostics.Msg( TraceLevel.Info,
  "Exiting Method1." );
}

利用一个全局的开关,你还可以组件特殊的程序集开关,来控制整个应用程序的输出:

internal static void Msg( TraceLevel l, object o )
{
 Trace.WriteLineIf ( librarySwitch.Level >= l ||
  globalSwitch.Level >= l,
  o, "MyLibrary" );
}
internal static void Msg( TraceLevel l, string s )
{
 Trace.WriteLineIf( librarySwitch.Level >= l ||
  globalSwitch.Level >= l,
  s, "MyLibrary" );
}

这样,你就可以在应用程序上诊断信息,而且更友好的控制个别库文件的输出。在应用程序的任何地方,你都可以设置应用程序级的诊断到错误级,从而发现错误。当你有一个独立的问题时,你可以通过提高这个库的输出级别,从而精确的发现问题的源头。

在实际环境中,对于已经布署的应用程序,诊断库对于程序诊断和维护是必须的。但你自己不必写这些诊断库:.Net FCL已经完成了核心的功能。尽可能完全的使用它们,然后在满足特殊要求时扩展它们。这样,即使是在产品发布的环境中也可以捕获所有的问题。

上一页  1 2 3 4 

Tags:Effective 原则 利用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接