2017-02-17 67 views
1

我剛剛開始使用C#,並且正在與Microsoft Azure一起玩WebRoles和WorkerRoles。我遇到的問題是我試圖使用調試器來查看我輸出到控制檯的消息Debug.WriteLine,但不幸的是,我很難通過WebRoles生成的所有噪聲找到我的輸出,並且看似自然的WorkerRoles。如何關閉Microsoft Azure Visual Studio C#WebRole WorkerRole調試輸出噪聲?

Visual Studio中的輸出窗口似乎沒有像很多其他調試器那樣執行任何RegEx或短語過濾,所以我不能簡單地關注我想要查看的輸出...輸出窗口被垃圾郵件像

WaWorkerHost.exe Information: 0 : Working 

以大約每秒5的速度。

我的問題是,我該如何去關閉這些(非常坦率地)令人討厭的消息,或者至少將它們過濾出來?

回答

1

該代碼爲最有可能是,這是由於創建工作角色或Web角色時爲您生成的代碼。 在WorkerRole.cs(或WebRole.cs),你的代碼類似於下面的代碼:

private async Task RunAsync(CancellationToken cancellationToken) 
    { 
     // TODO: Replace the following with your own logic. 
     while (!cancellationToken.IsCancellationRequested) 
     { 
      Trace.TraceInformation("Working"); 
      await Task.Delay(1000); 
     } 
    } 

刪除線Trace.TraceInformation

也有得到由ServiceRuntime吐出這些日誌輸出:

Microsoft.WindowsAzure.ServiceRuntime Verbose: 500 : Role instance status check starting 
Microsoft.WindowsAzure.ServiceRuntime Verbose: 502 : Role instance status check succeeded: Ready 

那些可以通過在WorkerRole.cs跟蹤級別設置爲信息或更高被關閉(或WebRole.cs),像這樣:

RoleEnvironment.TraceSource.Switch.Level = SourceLevels.Information; 

這可放在任何Run()OnStart()


額外/題外話

要禁用其他的東西,比如模塊的負載信息等,你可以右鍵單擊輸出窗口並取消選擇「模塊加載消息」,或其他消息是不感興趣的你。

+0

謝謝!這是問題所在。事實上,它只是說「正在工作」正在拋棄我... 同時,我還發現,如果您單擊輸出窗口,它將停止將您帶到最近的輸出輸出。另外,如果在焦點位於輸出窗口時按下ctrl + f,則會出現一個框讓您根據RegEx或普通字符串搜索輸出內容,這對我來說非常合適! – masquarainian