1

スタートアップタスクにトレースを追加したい。実際のすべての起動タスクの前に実行されるPowerShellスクリプトでDiagnosticsMonitorTraceListenerを有効にしようとしていました。コード:

Add-Type -Path ./Microsoft.WindowsAzure.Diagnostics.dll
$listener = new-object -type Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener 

[System.Diagnostics.Trace]::Listeners.Add($listener)

$credentials = new-object -type Microsoft.WindowsAzure.StorageCredentialsAccountAndKey -argumentlist "ACCOUNT_NAME", "ACCOUNT_KEY"
$dmConfig = Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor]::GetDefaultInitialConfiguration();
$dmConfig.Logs.ScheduledTransferPeriod = [System.TimeSpan]::FromMinutes(1)
[Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor]::Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", $dmConfig)

何らかの理由で、私のトレースは次のようになります。

[System.Diagnostics.Trace]::TraceInformation("Starting startup tasks")

AzureStorageに転送されることはありません。スクリプトは問題なく実行されます。Azure Diagnostic Infrastructureを作成して、起動タスクによって生成されたログをコピーする方法があることは知っていますが、私が理解している限り、DiagnosticMonitorは役割が開始されたときにのみ開始されます。スタートアップタスクが失敗し、ロールが実行されない場合はどうなりますか?ログは保持されません。

私がこれを解決するために間違った方法をとっているなら、私に知らせてください。ありがとう。

4

1 に答える 1

0

Visual Studio Ultimate を使用している場合の 1 つの代替方法は、IntelliTrace を使用することです。それは、起動中に多くのことを見ることができます。外部タスクなどについては、以下を確認してください。

http://blog.smarx.com/posts/windows-azure-startup-tasks-tips-tricks-and-gotchas

http://leastprivilege.com/2011/03/04/logging-output-of-azure-startup-tasks-to-the-event-log/

于 2012-01-20T15:21:00.793 に答える