- 爱易网页
-
ASP.NET教程
- Dot Net的调试 - 3
日期:2012-04-02 浏览次数:20384 次
调试
实际上调试和跟踪用得很普遍。Debug类中的方法有相同的名字的方法,这些方法实现了调试的功能。不同之处是在发布版本配置中是禁止使用的(这意味着不能产生二进制代码调用这些代码)。调试输出也可以在配置文件设置,请看下面:
<confuration>
<system.diagnostics>
<debug autoflush = “true” indentsize = “7” / >
</system.diagnostics>
</confuration>
备注:调试的声明和语法和跟踪很类似。不同之处,就是把有Trace的地方替换为Debug
设置调试开关
最后讨论的主题是Switch。Switch是有一些状态的对象。可以在配置文件或者编程的时候改变状态。Switch让你创建可配置的调试跟踪代码。最好了解Switch的方法是写一个段简单代码,如下:
using System;
using System.Diagnostics;
namespace Switching
{
class SampleClass
{
//Create a Switch. It is initialized by an externally specified value
static TraceSwitch generalSwitch = new TraceSwitch(“CoolSwitch”, “Global Scope”);
static public void SampleMethod()
{
//The first message is written if the switch state is set to TraceError
if(generalSwitch.TraceError)
console.WriteLine(“TraceError message”);
//The second message is written if the switch state is set to TraceVerbose
if (generalSwitch.TraceVerbose)
Console.WriteLine(“TraceVerbose message”);
//The third message is writeen if the switch state is set to TraceWarning
if (generalSwitch.TraceWarning)
Console.WriteLine(“TreaceWarning message”);
//The fourth message is written if the switch state is set to TraceInfo
if(generalSwitch.TraceInfo)
Console.WriteLine(“TraceInfo Message”);
}
public static void Main(string[] args)
{
//calls the sampleMethod method
SampleMethod();
}
}
}
有几个switch类:TraceSwitch和BooleanSwitch。这个例子中我们用使用TraceSwitch依照他们的状态创建输出信息。Switch状态由TraceErrror,TraceInfo,TraceVerbose和TraceWarning属性检查。这些属性检查switch状态和如果trace级别等于或大于相应的常量,那么将返回true。例如,当这个级别是2或者更大那么TraceWarning是true,下面表格是返回值:
TraceErroe
1
TraceWarning
2
TraceInfo
3
TraceVerbose
4
但是,正如我们已经说的,switch的状态可以在代码中修改,做个修改代码的范例:
using System;
using System.Diagnostics;
namespace Switching
{
class SampleClass
{
//Create a Switch. It is initialized by an externally specified value
static TraceSwitch generalSwitch = new TraceSwitch(“CoolSwitch”, “Global Scope”);
static public void SampleMethod()
{
//The first message is written if the switch state is set to TraceError
if(generalSwitch.TraceError)
console.WriteLine(“TraceError message”);
//The second message is written if the switch state is set to TraceVerbose
if (generalSwitch.TraceVerbose)
Console.WriteLine(“TraceVerbose message”);
//The third message is writeen if the switch state is set to TraceWarning
if (generalSwitch.TraceWarning)
Console.WriteLine(“TreaceWarning message”);
//The fourth message is written if the switch state is set to TraceInfo
if(generalSwitch.TraceInfo)
Console.WriteLine(“TraceInfo Message”);
}
public static void Main(string[] args)
{
Console.WriteLine(“Before manual level set\n”);
SampleMethod();
GeneralSwitch.Level = TraceLevel.Warning;