【发布时间】:2017-09-07 10:18:28
【问题描述】:
我有一个工作角色,它在其 onStart() 方法中与 azure 服务总线通信,因此需要一些时间才能完成。
我在这个方法中同时有错误和信息跟踪日志(错误日志只是为了证明代码正常执行而不是阻塞)。
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() 过程中以及在发布和手动更新诊断之间查看信息记录?
谢谢
【问题讨论】:
标签: c# .net azure logging visual-studio-2015