Trace 与 Debug 类
Posted ifordream
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Trace 与 Debug 类相关的知识,希望对你有一定的参考价值。
一、概述
Debug 类用于开发阶段,Trace 类用于开发与测试阶段,大部分用于追踪程序代码的状态或行为。
Trace.WriteLine("Trace Information");
Trace.WriteLine("一般信息");
Trace.TraceInformation("告知性信息");
Trace.TraceWarning("警告信息");
Trace.TraceError("错误信息");
二、Assert 方法
Trace 与 Debug 类的Assert方法和单元测试的Assert方法非常类似,它会进行条件检查,如果条件为false时,除了会输出至输出窗口外,还会“弹出窗口”已明确显示信息(内部调用Fail方法)
static void Main(string[] args)
{
int UnitQty = 1000;
double UnitCost = 99;
DebugStatus(UnitQty, UnitCost);
Console.ReadLine();
}
static void DebugStatus(int UnitQty, double UnitCost)
{
Trace.WriteLine("一般信息");
Debug.WriteLine("总成本:" + (UnitQty * UnitCost));
Debug.WriteLineIf(UnitQty > 100, "库存>100本");
Debug.WriteLineIf(UnitQty < 100, "库存<100");
Trace.TraceError("错误信息");
Debug.Assert(!(UnitCost > 1000), "成本>1000 太贵了!");
Debug.Assert(!(UnitCost < 100), "成本<100 不合理!");
}
三、Listeners 集合
Trace 与 Debug 类默认会输出信息至Visual Studio 的“输出窗体”。也可以设置多个监听器(Listeners)来输出至各种媒体,文本文件,CSV,XML,事件查看器等等,默认使用DefaultTraceListener类。
1.TextWriterTraceListener 可通过Web.Config和程序代码两种方式配置
Web.config的配置方式:
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<remove name="Default"/>
<add name="TraceListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="E:TraceMessage.log"/>
</listeners>
</trace>
</system.diagnostics>
如果 autoflush="false",必须在程序中调用Flush方法输出至文本文件。
程序代码的配置方式:
TextWriterTraceListener textListener = new TextWriterTraceListener(System.IO.File.CreateText("Debug.txt"));
Debug.Listeners.Add(textListener);
2.EventLogTraceListener
Web.config的配置方式:
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<remove name="Default"/>
<add name="TraceListener" type="System.Diagnostics.EventLogTraceListener" initializeData="Application"/>
</listeners>
</trace>
</system.diagnostics>
程序代码的配置方式:
EventLogTraceListener eventLog = new EventLogTraceListener("Application");
Trace.Listeners.Add(eventLog);
Trace.TraceInformation("Send trace info test.");
以上是关于Trace 与 Debug 类的主要内容,如果未能解决你的问题,请参考以下文章
Debug|Trace.WriteLine 来自 Visual Studio 中的 C# 插件 - 通过 ConsoleTraceListener 显示
如何将 System.Diagnostics.Trace 和 System.Diagnostics.Debug 消息记录到 NLog 文件?