从角色进程获取Azure日志

从角色进程获取Azure日志,azure,azure-diagnostics,Azure,Azure Diagnostics,我已配置Azure诊断,以便将日志上载到存储表。我正在使用代码中的Trace.TraceXxx,一切都很好 现在,我尝试从Role OnStart()和OnStop()方法添加跟踪。我知道,当我在模拟器中运行时,在调试窗口中看到行时,跟踪工作正常。但从云部署来看,这些跟踪行似乎从未上传到表中。我的猜测是,它在某种程度上与TraceSources有关,因为我在表中看到的唯一跟踪行都来自w3wp.exe源。。。有什么提示吗 谢谢正如您所说,您可以使用waihost.exe.config添加跟踪侦听器

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

现在,我尝试从Role OnStart()和OnStop()方法添加跟踪。我知道,当我在模拟器中运行时,在调试窗口中看到行时,跟踪工作正常。但从云部署来看,这些跟踪行似乎从未上传到表中。我的猜测是,它在某种程度上与TraceSources有关,因为我在表中看到的唯一跟踪行都来自w3wp.exe源。。。有什么提示吗


谢谢

正如您所说,您可以使用waihost.exe.config添加跟踪侦听器,但除此之外,您还可以在代码中添加跟踪侦听器(您需要对Microsoft.WindowsAzure.Diagnostics.dll的引用):


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

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

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

这里有一个链接,指向设置诊断的三种方法

兰吉思

好的,所以我发现RoleEntryPoint没有使用
web.config
文件,我需要在我的web项目中创建另一个名为
waiHost.exe.config
的配置文件(复制到输出目录->始终复制),并从web.config复制/粘贴
部分。我的解决方案中已经有一个diagnostics.wadcfg文件,但这还不足以激活RoleEntryPoint中的跟踪(您仍然需要通过配置文件或通过@Sandrino解释的编程方式添加侦听器)。
public class WebRole : RoleEntryPoint
{
    public override void Run()
    {
        var listener = new Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener();
        Trace.Listeners.Add(listener);

        ...
    }
}