ASP.net 的trace

          trace对于诊断应用问题非常有效,.Net framework里面提供了System.Diagnostics,里面有很好的trace机制,那么asp.net2.0自己的trace又是怎么回事,二者关系如何? 

         基本上来讲,asp.net的trace是独立的机制,但是他和framework的System.Diagnostics的机制有结合的方法

       1。通过设置trace配置(配置文件或者@page的属性设置),可以看到自己的页面或者刚才执行过的页面  (注意,只是页面)的情况,包括

  • The sequence of page events that occurred while the page ran.
  • The types, names, and sizes of the controls on the page.
  • The cookies and their contents.
  • The server variables, which is a collection of all information that the browser sends to the server.
显示结果可以在当前页面上也可以通过 ASP.NET Trace viewer (Trace.axd)来观察

 

2。可以使用trace.warn或者trace.write方法写一些自己的trace信息,这些也会和页面自己的trace一起显示

 
3。设置了trace以后,信息被记录,可以通过事件的方式获取修改这些trace信息
 
4。如果page里面调用了其他对象,比如调用业务对象,业务对象内部记录的trace信息,实际上是trace不出来的,这个时候就需要使用 System.Diagnostics 的方法了,有两个选择:
a。Routing All Tracing Output to the Web Form
这种方式就是添加一个 WebPageTraceListener,然后所有使用System.Diagnostics里面的trace类记录的信息就会和asp.net自己的那些trace信息一起显示了
<system.diagnostics>
 <trace>
    <listeners>
       <add name="WebPageTraceListener"
            type="System.Web.WebPageTraceListener, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    </listeners>
 </trace>
</system.diagnostics>
b。Routing All Tracing Output to .NET Framework Tracing
这种方式就是使用System.Diagnostics的机制,添加listener,让所有trace信息都到listener里面去,而不再是asp.net自己的trace展示方式了(页面中或者trace.axd的方式)
这种方式首先要修改config,告诉asp.net使用 System.Diagnostics <trace writeToDiagnosticsTrace="true"/>
然后就是标准的trace的listener添加了
<system.diagnostics>   
 <trace autoflush="true">
    <listeners>
          <add name="TestTracer"
        type="System.Diagnostics.TextWriterTraceListener, System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
        initializeData="<app root directory>/Asptesttrace.log" />
    </listeners>
 </trace>
</system.diagnostics>
 
 
但是,前提是,由于是System.Diagnostics,所以必须To compile your application with trace enabled
<system.codedom>
 <compilers>
    <compiler language="c#;cs;csharp"
              extension=".cs"
              compilerOptions="/d:TRACE"
              type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="1" />
    <compiler language="VB"
              extension=".vb"
              compilerOptions="/d:Trace=true"
              type="Microsoft.VisualBasic.VBCodeProvider, System,                                        Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
 </compilers>
</system.codedom>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值