System.Web.Http.Tracing 在webapi里面应用

< ![CDATA[

最近想写log.再接口里面

所以就想到了.net 4.0提供的这个类.

整好.配合asp.net api好使用

,而且 本地调试会在 vs Output 里面输出.

 

1.开启这个Tracing

   config.EnableSystemDiagnosticsTracing();

 

2. 使用

using System.Web.Http.Tracing;
using System.Diagnostics.Tracing;

 

 SystemDiagnosticsTraceWriter traceWriter = Configuration.Services.GetTraceWriter();
traceWriter.Trace(Request,"`",TraceLevel.Info,"{0}","hello.");
 

3.拓展.因为写这个的肯定不会在一个地方显示,就写到一个txt里面吧

    public class MyTraceWriter:ITraceWriter
    {
    public void Trace(System.Net.Http.HttpRequestMessage request, string category, TraceLevel level, Action<TraceRecord> traceAction)
    {
    TraceRecord record = new TraceRecord(request, category, level);
    traceAction(record);
    string path = HttpContext.Current.Server.MapPath("~/Logs/log.txt");
    File.AppendAllText(path, record.Status + " - " + record.Message + "rn");
    }
    }

配置改为

config.Services.Replace(typeof(ITraceWriter),newMyTraceWriter());
 MyTraceWriter trace = (MyTraceWriter)Configuration.Services.GetTraceWriter();
            trace.Trace(Request,"1",TraceLevel.Info,"{0}","1.");
 

 

这时候.tracing里面的内容就到文本文件里面了

4. 好处:
1.调试的时候,输出到output窗口里面
2.发布网上,能写到log里面.

 

 

 

 

 

 
   
]]> 
  

你可能感兴趣的:(System)