信息记录停止在azure worker角色onStart()的一部分中出现

时间:2017-09-07 10:18:28

标签: c# .net azure logging visual-studio-2015

我有一个辅助角色,它在onStart()方法中与azure服务总线对话,因此需要一些时间才能完成。

我在这个方法中都有Error和Informational TraceLogging(错误记录只是为了证明代码正常执行而不是阻塞)。

Trace.TraceInformation($"Info: About to check queue exists"); 
Trace.TraceError($"Error: About to check queue exists"); 
if (!(namespaceManager.QueueExists(sourceQueueName)))
{
    Trace.TraceError($"Message = Unable to find source queue: {SourceQueueName} in service bus: {ConnectionString}");
}
else
{
    Trace.TraceInformation($"Info: Creating queue client for: {sourceQueueName}");
    Trace.TraceError($"Error: Creating queue client for: {sourceQueueName}");
    sourceClient = QueueClient.CreateFromConnectionString(connectionString, sourceQueueName);
}

这个输出是:

EventName="MessageEvent" Message="Info: About to check queue exists" TraceSource="WaWorkerHost.exe"
EventName="MessageEvent" Message="Error: About to check queue exists" TraceSource="WaWorkerHost.exe"
EventName="MessageEvent" Message="Error: Creating queue client for: myqueue" TraceSource="WaWorkerHost.exe"

实际上,在对名称空间管理器的调用之上有更多的日志记录,因此我可以看到信息日志记录在稍微随机的位置停止,但始终在调用namespaceManager.QueueExists之前阻塞网络调用。

当我部署我的角色时,我总是在部署后通过visual studio将应用程序日志设置为信息(更新服务器资源管理器中的云服务诊断)。在每次部署之后,日志记录级别总是会自动重置为错误,所以我必须这样做。

所以我假设在'发布'期间信息记录仍然从上次开启,但在重新部署期间的某个时刻它会切换回错误(直到我重新进入并将其设置回信息记录)。

有没有办法在发布期间获取信息?我假设诊断配置中设置的日志记录级别是关于将哪些日志复制到azure存储而不是首先记录的日志。那不是这样吗?如何在整个onStart()过程中以及发布和手动更新诊断之间查看信息记录?

由于

2 个答案:

答案 0 :(得分:0)

  

有没有办法在发布期间获取信息?我假设诊断配置中设置的日志记录级别是关于将哪些日志复制到azure存储而不是首先记录的日志。那不是这样吗?如何在整个onStart()过程中以及发布和手动更新诊断之间查看信息记录?

我还在我身边创建了一个测试云服务并发布到了azure。它运作良好。如果在发布之前设置了正确的诊断配置(azure)。 Azure不会更改设置。

注意:确保选择了正确的服务配置。

enter image description here

发布到azure之后,你会发现诊断是正确的。

enter image description here

如果要查看已发布的日志,可以使用azure Web门户打开操作日志(经典)。

enter image description here

答案 1 :(得分:0)

我需要为worker角色更新diagnostics.wadcfgx文件。

我将scheduledTransferLogLevelFilter中的DiagnosticMonitorConfiguration从错误更改为信息:

<DiagnosticsConfiguration xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
    <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
        <WadCfg>
            <DiagnosticMonitorConfiguration>
                ...
                <Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Information" />
            </DiagnosticMonitorConfiguration>
            ...
         </WadCfg>
     </PublicConfig>
     ...
</DiagnosticsConfiguration>