Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET Web API中,如何在内置页面上查看tracercord详细信息?_C#_Asp.net_Debugging_Asp.net Web Api_Trace - Fatal编程技术网

C# 在ASP.NET Web API中,如何在内置页面上查看tracercord详细信息?

C# 在ASP.NET Web API中,如何在内置页面上查看tracercord详细信息?,c#,asp.net,debugging,asp.net-web-api,trace,C#,Asp.net,Debugging,Asp.net Web Api,Trace,我已通过创建一个新的跟踪写入程序为我的Web API应用程序启用了跟踪功能,该程序只将详细信息记录在一个文件中: public class MyTraceWriter : ITraceWriter { private readonly ILog _log; public MyTraceWriter(ILog log) { _log = log; } public void Trace(HttpRequestMessage request,

我已通过创建一个新的跟踪写入程序为我的Web API应用程序启用了跟踪功能,该程序只将详细信息记录在一个文件中:

public class MyTraceWriter : ITraceWriter
{
    private readonly ILog _log;
    public MyTraceWriter(ILog log)
    {
        _log = log;
    }

    public void Trace(HttpRequestMessage request, string category, TraceLevel level, Action<TraceRecord> traceAction)
    {
        var traceRecord = new TraceRecord(request, category, level);
        traceAction(traceRecord);
        _log.Info(GetDetails(traceRecord));
    }

    private string GetDetails(TraceRecord traceRecord)
    {
        var sb = new StringBuilder();
        sb.AppendFormat("\r\n\t{0} {1}\r\n\tCategory={2}, Level={3}, Kind={4}\r\n\tOperator:{5}, Operation: {6}",
                traceRecord.Request.Method,
                traceRecord.Request.RequestUri,
                traceRecord.Category,
                traceRecord.Level,
                traceRecord.Kind,
                traceRecord.Operator,
                traceRecord.Operation);

        if (traceRecord.Exception != null)
        {
            sb.AppendFormat("\r\n\tException : {0}", traceRecord.Exception.GetBaseException().Message);
        }
        else if (traceRecord.Message != null)
        {
            sb.AppendFormat("\r\n\tMessage : {0}", traceRecord.Message);
        }
        sb.AppendLine();
        return sb.ToString();
    }
}
我只是想知道是否有任何内置的功能/工具/页面,我可以使用/monitor来查看跟踪的详细信息


如果可能,我希望避免创建自己的自定义数据库表和页面。

您也可以安装“Microsoft.AspNet.WebApi.Tracing”nuget包,然后调用
config.enableSystemDiagnosticsTracking()
WebApiConfig.cs
中。此扩展为您注册
SystemDiagnosticsTraceWriter

您还可以注册EventLog跟踪侦听器以将事件写入EventLog,在这种情况下,您可以使用EventViewer查看数据

例如:


如果您只想在调试时(即在本地计算机上)进行跟踪,则只需跟踪到Visual Studio窗口即可。
config.Services.Replace(typeof(ITraceWriter),
                    new MyTraceWriter(LogManager.GetLogger("Tracing")));