从角色过程获取Azure日志

时间:2012-04-15 12:14:20

标签: azure azure-diagnostics

我已配置Azure诊断程序,以便将日志上载到存储表。我正在使用我的代码中的Trace.TraceXxx,一切正常。

现在我正在尝试从Role OnStart()和OnStop()方法添加跟踪。我知道跟踪工作正如我在模拟器中运行时看到调试窗口中的行。但是从云部署来看,似乎这些跟踪线永远不会上传到表中。我的猜测是它与TraceSources有些相关,因为我在表中唯一的跟踪线来自w3wp.exe源...任何提示?

由于

2 个答案:

答案 0 :(得分:1)

就像你说过你可以使用 WaIISHost.exe.config 添加跟踪侦听器,但除此之外你还可以在代码中添加跟踪侦听器(你需要引用 Microsoft.WindowsAzure.Diagnostics.dll ):

public class WebRole : RoleEntryPoint
{
    public override void Run()
    {
        var listener = new Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener();
        Trace.Listeners.Add(listener);

        ...
    }
}

答案 1 :(得分:0)

设置诊断的另一种方法是通过配置文件。如果您最近创建了VS解决方案,它将自动为跟踪侦听器创建诊断插件和配置。使用配置文件(diagnostics.wadcfg),不需要为不同的数据源编写代码。这是一个可以开始使用的链接和一个示例文件:

http://msdn.microsoft.com/en-us/library/gg604918.aspx

您现在不能包含自定义性能计数器,并且您需要确保不要尝试为任何事物分配超过4GB的缓冲区(可以保留为0),否则它往往会失败。

注意,时间间隔格式(例如PT1M)。这是序列化格式,因此PTXM是X分钟,而PTXS是X秒。您需要将此标记为内容并始终在Visual Studio中复制(放置在项目的根目录下),以便打包。

以下是设置诊断的三种方法的链接 http://msdn.microsoft.com/en-us/library/windowsazure/hh411541.aspx

Ranjith
http://www.opstera.com