当前位置:首页 > 操作系统 > Windows

c#-无法停止Windows Azure上运送详细跟踪日志

我们使用Windows Azure Diagnostics Monitor跟踪侦听器将跟踪日志发送到Azure Diagnostics.由于我们有大量详细的日志,因此我们决定停止将这些日志发送到Azure Diagnostics,以进行简单调试.

但是,当我们设置ScheduledTransferLogLevelFilter属性时,Azure Diagnostics似乎会忽略它;因此所有Verbose日志仍在发货.

我们使用的配置部分是:

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

代码是:

<code>var config = DiagnosticMonitor.GetDefaultInitialConfiguration();

config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Information;
config.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1d);

DiagnosticMonitor.Start(CONNECTION_STRING, config);
</code>

还有其他人遇到这个问题吗?是否需要设置一组其他配置值来停止跟踪日志发送详细条目?

编辑:

Avkash Chauhan让我步入正轨;您需要显式保存配置;最终代码看起来像这样,并按预期运行.

<code>public static void StartLogging()
{
    var cloudStorageAccount = 
        CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue(DEFAULT_CONNECTION_STRING));

    var roleInstanceDiagnosticManager =
        cloudStorageAccount.CreateRoleInstanceDiagnosticManager(
            RoleEnvironment.DeploymentId,
            RoleEnvironment.CurrentRoleInstance.Role.Name,
            RoleEnvironment.CurrentRoleInstance.Id);

    var config = roleInstanceDiagnosticManager.GetCurrentConfiguration();

    config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Information;
    config.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1d);

    roleInstanceDiagnosticManager.SetCurrentConfiguration(config);

    // Start the diagnostic monitor with the modified configuration.
    DiagnosticMonitor.Start(DEFAULT_CONNECTION_STRING, config);
}
</code>

解决方法:

我认为您没有正确保存配置设置,这可能会导致问题.过去我曾看到过,如果您不将SetCurrentConfiguration()与配置对象一起使用,则不会保存该设置,因此在“诊断”监视器运行时,您将看不到效果.尝试添加SetCurrentConfiguration()来检查是否是这种情况.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐