2012-01-19 59 views
1

我想爲我的啓動任務添加跟蹤。我試圖在所有實際啓動任務之前運行的powershell腳本中啓用DiagnosticsMonitorTraceListener。代碼:在啓動任務運行之前啓用DiagnosticsMonitorTraceListnener

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") 

永不結束轉移到Azure存儲。腳本運行沒有任何問題。 我知道有一種方法可以讓Azure診斷基礎結構複製啓動任務生成的日誌,但據我瞭解,DiagnosticMonitor只有在角色啓動時纔會啓動。如果啓動任務失敗並且角色永遠無法運行 - 日誌不會保留。

請讓我知道,如果我錯誤的方式來解決這個問題。謝謝。

回答

0

如果您使用Visual Studio Ultimate,另一種方法是使用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/

+0

啓動任務遠程機器上運行,而我可能無法訪問,e.g,生產服務器。如果我決定寫入事件日誌,那麼當其中一個啓動任務失敗時(DiagnosticMonitor永遠不會啓動),我仍然需要編寫自定義邏輯,以便將事件日誌保留在Azure存儲中。 – Janusz

相關問題