Azure 诊断/日志存储表在哪里?
我在将WebRole(WCF服务)部署到时遇到问题。我的WebRole会持续显示buzy至少30分钟,直到我放弃它。我通过VisualStudio2010进行部署。我正在寻找一些跟踪信息,有几个博客向我介绍了名为Azure 诊断/日志存储表在哪里?,azure,azure-table-storage,Azure,Azure Table Storage,我在将WebRole(WCF服务)部署到时遇到问题。我的WebRole会持续显示buzy至少30分钟,直到我放弃它。我通过VisualStudio2010进行部署。我正在寻找一些跟踪信息,有几个博客向我介绍了名为WADInfrastructureLogsTable和WADLogsTable的存储表 我已将存储帐户的配置设置如下: <ConfigurationSettings> <Setting name="DiagnosticsConnectionString"
WADInfrastructureLogsTable
和WADLogsTable
的存储表
我已将存储帐户的配置设置如下:
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString"
value="DefaultEndpointsProtocol=https;AccountName=sandsofttestservice;AccountKey=HgPjkzx+mjqgoDTO8SBNB3B4hdARuibWTOHrXg4BpxRKJfRZ/s4abVIoD5lOIW0LkoD0CoMb0i0GiTXA483MDQ==" />
</ConfigurationSettings>
您是否为日志表设置了传输计划?也就是说,所有日志记录都缓存在每个实例中,您需要显式地要求定期将该数据持久化到表存储中。以下是WADLogsTable的一个简单示例:
var dm = DiagnosticMonitor.GetDefaultInitialConfiguration();
dm.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5);
dm.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
DiagnosticMonitor.Start("DiagnosticsConnectionString", dm);
设置好后,您应该会在一段时间后看到WADLogsTable表
您还需要为其他每种类型设置传输周期和过滤器:
- 事件日志
- 诊断基础结构日志
- 目录
- 性能计数器
帮助诊断问题的另一个选项是Intellitrace。如果您使用的是Visual Studio 2010 Utimate,则可以在部署中启用Intellitrace。这将允许您下载Intellitrace日志文件,从中您可以看到一些与应用程序的部署和启动相关的非常详细的信息。可能会产生一些异常或其他错误,可能会导致“忙”状态延长。我也有类似问题。我将“传输”时间设置为1分钟,但它不会传输。然而,在我将其更新到5分钟后,我开始在WADLogsTable中看到跟踪消息。不知道为什么会有不同,也没有找到任何关于最短转会期的文件,但5分钟对我来说很有效
还要确保您的web/worker角色中有适当的Trace.Writeline()语句。谢谢您的回答。现在我已经设置了预定的转移,我没有给我WADLogsTable。我也尝试创建一个新的存储库,但也没有运气。请确保在调用DiagnosticMonitor.Start()后,实际调用Trace.traceInformation()(或任何其他级别),可能在webrole.cs中,以生成要传输的内容。然后等待几分钟(不退出应用程序)。有时创建表需要几分钟的时间。@DavidMakogon:非常有用!不要使用Trace.WriteLine()或Trace.Write(),而是使用Trace.TraceInformation、Trace.TraceError、Trace.TraceWarning。如果没有此选项,InfrastructureLogStable便笺createdSee my blog您不应该在web.config文件中设置diag字符串。1分钟就可以了。任何小于1的值都会四舍五入到1分钟。
var dm = DiagnosticMonitor.GetDefaultInitialConfiguration();
dm.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5);
dm.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
DiagnosticMonitor.Start("DiagnosticsConnectionString", dm);