Azure诊断和顶级类(按比例缩小)-如何防止日志丢失?

Azure诊断和顶级类(按比例缩小)-如何防止日志丢失?,azure,azure-diagnostics,Azure,Azure Diagnostics,我正在Web角色的onStart中初始化Azure诊断,并计划每5分钟传输一次日志。但是当自动秤关闭一个我的角色时,我们就失去了上次转移以来的日志。在onStop中我可以做些什么来防止这种情况发生?有没有办法强制日志传输并防止onStop在完成之前完成?谢谢 只需使用onStop方法进行日志传输即可。或者,如果这是在线程中完成的,则在onStop方法中使用一个标志和一个循环来休眠,直到设置标志为止 SaveLogAsync(); while(!saved) { Thread.Sleep(

我正在Web角色的onStart中初始化Azure诊断,并计划每5分钟传输一次日志。但是当自动秤关闭一个我的角色时,我们就失去了上次转移以来的日志。在onStop中我可以做些什么来防止这种情况发生?有没有办法强制日志传输并防止onStop在完成之前完成?谢谢

只需使用onStop方法进行日志传输即可。或者,如果这是在线程中完成的,则在onStop方法中使用一个标志和一个循环来休眠,直到设置标志为止

SaveLogAsync();
while(!saved)
{
    Thread.Sleep(100);
}

onStop方法在强制关闭之前仍有最长的运行时间。我想需要5分钟。

要在角色关闭时传输诊断数据,您需要执行名为“按需传输”的操作。这将开始将存储在缓冲区中的数据传输到诊断存储帐户。您可能会发现此链接有助于执行按需转账:


大卫是对的。您有大约5分钟的时间来执行此操作。有关详细信息,请参阅此链接:。要优雅地处理OnStop事件,您可能会发现这篇博文很有用:。

是的,谢谢,但我如何强制在OnStop中传输日志?我查找了文档,到目前为止没有发现任何内容,因此我在这里:)