gpt4 book ai didi

azure - 设置 Azure 诊断的明确步骤

转载 作者:行者123 更新时间:2023-12-02 23:51:09 26 4
gpt4 key购买 nike

我正在尝试让诊断跟踪正常工作,但我对必须遵循的必要步骤感到困惑。我将介绍到目前为止我所做的事情:

app.config中,我有以下内容:

<system.diagnostics>
<trace autoflush="true" />

<sources>
<source name="ProfileTrace" switchName="profileTraceSwitch" switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics">
<filter type="" initializeData="Warning" />
</add>
<add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="..\..\..\skype.portal.profile.log" traceOutputOptions="ProcessId, ThreadId" />
</listeners>
</source>
</sources>

<switches>
<add name="profileTraceSwitch" value="Verbose"/>
</switches>

</system.diagnostics>

Service.Definition中,我有以下内容:

<Imports>
<Import moduleName="Diagnostics" />
</Imports>

Service.Configuration中我有:

<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=<snip>;AccountKey=<snip>" />

我现在有以下困惑。正如您在 app.config 中看到的,我尝试为 DiagnosticMonitorTraceListener 添加一个过滤器以仅跟踪警告,但该过滤器被忽略。我发现这篇文章,建议使用派生自 DiagnosticMonitorTraceListener http://social.msdn.microsoft.com/forums/wpapps/en-us/92ed1175-d6b7-4173-a224-0f7eb3e99481/diagnosticmonitortracelistener-ignors-filter 的自定义跟踪监听器

另一方面,按照微软的官方链接 http://msdn.microsoft.com/en-us/library/ee758610.aspx他们将过滤器类型留空:

<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, 
Microsoft.WindowsAzure.Diagnostics,
Version=1.0.0.0,
Culture=neutral,
PublicKeyToken=31bf3856ad364e35"
name="AzureDiagnostics">
<filter type="" />
</add>

然后他们提到了配置日志属性 http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.diagnostics.diagnosticmonitorconfiguration.logs.aspx我在哪里看到:

public override bool OnStart() {
......

// Filter the logs so that only error-level logs are transferred to persistent storage.
diagnosticConfiguration.Logs.ScheduledTransferLogLevelFilter = LogLevel.Error;

......

return base.OnStart();
}

}

所以,我有以下两个问题:

  1. 在我当前的解决方案中,我没有在 WorkerRole 的 Start 方法上编写任何代码来配置诊断监视器,但经过一番搜索后我发现很多人都这样做。我在本地运行我的项目,并且能够看到存储在 Azure WADLogsTable 中的数据。那么,是否必须将诊断监视器配置代码添加到我的辅助角色中,或者我可以只使用 Diagnostics.wadcfg 吗?
  2. 由于 app.config 文件中的 DiagnosticMonitorTraceListener 过滤器被忽略,因此如果我跳过使用此处建议的从 DiagnosticMonitorTraceListener 派生的自定义跟踪监听器 http://social.msdn.microsoft.com/forums/wpapps/en-us/92ed1175-d6b7-4173-a224-0f7eb3e99481/diagnosticmonitortracelistener-ignors-filter并在我的WorkerRole中使用Logs属性的ScheduledTransferLogLevelFilter,我可以实现我想要的日志过滤器吗?或者 app.config 和 ScheduledTransferLogLevelFilter 中的过滤器可能引用 2 种不同类型的过滤器?

最佳答案

我建议不要在代码中设置 Azure 诊断配置。相反,我建议使用diagnostic.wadcfg 文件方法。您可以在这里找到一些信息 - http://msdn.microsoft.com/en-us/library/hh411551.aspx 。 Visual Studio 也将帮助生成此文件。

不必在角色的 OnStart() 方法中设置任何 Azure 诊断配置。

设置 ScheduledTransferLogLevelFilter 就足够了。另外,如果需要,您还可以在运行时轻松更改过滤器级别(通过 API 调用、Visual Studio 或 Cerebrata Azure Management Studio 等第三方工具)。

关于azure - 设置 Azure 诊断的明确步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24520944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com