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

时间:2023-03-09 04:10:01
System.Web.Http.Tracing 在webapi里面应用

最近想写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,",TraceLevel.Info,"{0}","1.");
 
这时候.tracing里面的内容就到文本文件里面了

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


]]>