【问题标题】:Default trace writer in ASP.NET Web APIASP.NET Web API 中的默认跟踪编写器
【发布时间】:2013-06-20 22:44:10
【问题描述】:

根据documentation

使用ITraceWriter 接口为 ASP.NET Web API 编写跟踪。 ITraceWriter 的默认实现是“无操作”跟踪器

为什么我的应用程序中会出现null

    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            ITraceWriter trace = GlobalConfiguration.Configuration.Services.GetTraceWriter();
            //..........
        }
    }

我需要将实例作为依赖项传递给我的处理程序/等。当然,我可以自己实现和注册“无操作”编写器,但是...

为什么我更喜欢新界面而不是旧的System.Diagnostics

【问题讨论】:

    标签: .net asp.net-mvc-4 logging asp.net-web-api


    【解决方案1】:

    Web API 有一个名为 Microsoft.AspNet.WebApi.Tracing 的 Tracing nuget 包,您可以使用它来获取默认的 System.Diagnostic 跟踪。

    你可以这样做:

    config.EnableSystemDiagnosticsTracing();
    

    【讨论】:

      【解决方案2】:

      根据Testing and Debugging.
      你会得到null,因为跟踪器不在管道中。

      您可以通过您的实现替换默认跟踪器:

      public static void Register(HttpConfiguration config)
      {
         config.Services.Replace(typeof(ITraceWriter), new SimpleTracer());
      }  
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-13
        • 2022-09-23
        • 2019-06-06
        • 2021-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多