Azure诊断1.3 - 如何立即记录不支持System.Diagnostics.Trace

时间:2015-03-30 00:34:06

标签: .net azure log4net azure-web-roles etw

根据Microsoft Azure Diagnostics Part 4: Custom Logging Components and Azure Diagnostics 1.3 Changes

  

Azure Diagnostics 1.3不支持System.Diagnostic.Trace日志。相反,您将使用EventSource。 System.Diagnostic.Trace日志记录语句仍可用于模拟环境,以将跟踪/调试语句写入Azure Compute Emulator控制台。

我一直在寻找一个如何在Azure中以简单的方式使用System.Diagnostics ETW(Windows事件跟踪)框架的示例,就像使用log4Net之类的日志框架一样。有没有一种简单的方法可以将ETW包装到log4Net中的日志追加器中,以便可以在Azure解决方案中编写如下语句。

Log.Info("My info logging statement.")

这不应该是困难的,但是我找不到任何简单的样品。

1 个答案:

答案 0 :(得分:1)

那篇声明WAD 1.3不支持Trace语句的文章已经过时,不再正确。当引入新版本的WAD时,它最初不包括对System.Diagnostics.Trace的支持,但是这已经解决,应该可以正常工作。要记住的关键是你需要注册为跟踪监听器的2.5版Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener。最简单的方法是将以下内容放入web.config(对于IIS代码)或app.config(对于Worker角色或WaIISHost.exe中的代码):

  <system.diagnostics>
    <trace>
      <listeners>
        <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
          name="AzureDiagnostics">
          <filter type="" />
        </add>
      </listeners>
    </trace>
  </system.diagnostics>


如果您想使用ETW痕迹,可以在http://azure.microsoft.com/en-us/documentation/articles/cloud-services-dotnet-diagnostics/查看样本。