gpt4 book ai didi

azure - Trace.WriteLine() 消息仅保留在 Azure WorkerRole 的 OnStart() 中

转载 作者:行者123 更新时间:2023-12-01 02:45:31 24 4
gpt4 key购买 nike

我正在开发 Azure WorkerRole()。在计算模拟器控制台中,我看到所有 Trace.WriteLine() 消息,但只有 OnStart() 中生成的消息似乎会持久保存到存储中。

我的 ServiceConfiguration.Local.csfg 有:

<Role name="MyWorkerRole">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
</ConfigurationSettings>
</Role>

我的 WorkerRole.cs 有:

public override void Run() {
Trace.WriteLine("Called from Run(), where does this trace go???", "Information");

// ... SNIP ...
}
public override bool OnStart() {
// Set the maximum number of concurrent connections
ServicePointManager.DefaultConnectionLimit = 12;

DiagnosticMonitorConfiguration dmc = DiagnosticMonitor.GetDefaultInitialConfiguration();
dmc.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);
dmc.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
DiagnosticMonitor.Start("DiagnosticsConnectionString", dmc);

Trace.WriteLine("This trace appears in WADLogsTable", "Information");

return base.OnStart();
}

最佳答案

这看起来是正确的 - 我想知道为什么你看不到任何东西。我想知道 Start 是否以某种方式忽略了您的配置更改。这是我使用的一些代码,用于传输跟踪日志(我知道这有效):

    private static void EnableDiagnostics(int transferTime)
{
string wadConnectionString = "Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString";
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue(wadConnectionString));

RoleInstanceDiagnosticManager roleInstanceDiagnosticManager = storageAccount.CreateRoleInstanceDiagnosticManager(RoleEnvironment.DeploymentId, RoleEnvironment.CurrentRoleInstance.Role.Name, RoleEnvironment.CurrentRoleInstance.Id);
DiagnosticMonitorConfiguration config = roleInstanceDiagnosticManager.GetCurrentConfiguration();

if (config == null)
{
config = DiagnosticMonitor.GetDefaultInitialConfiguration();
}

config.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(transferTime);
config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Undefined;

CrashDumps.EnableCollection(true);

roleInstanceDiagnosticManager.SetCurrentConfiguration(config);
}

关于azure - Trace.WriteLine() 消息仅保留在 Azure WorkerRole 的 OnStart() 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7028155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com