2015-10-03 136 views
0

我已將控制檯應用程序轉換爲預定的WebJob。所有工作都很好,但我在計算如何完成我想要的錯誤日誌記錄/電子郵件方面遇到了一些麻煩。Azure WebJob日誌記錄/電子郵件

1.)我使用Console.WriteLine和Console.Error.WriteLine創建日誌消息。我看到這些顯示在門戶網站上時,我去WebJob運行詳細信息。有什麼辦法可以將這些日誌保存到文件的某個地方嗎?我將我的存儲帳戶連接字符串添加爲AzureWebJobsDashboard和AzureWebJobsStorage。但是這似乎剛剛創建了一個只有「版本」文件的「azure-webjobs-dashboard」blob容器。

2.)有沒有辦法讓行號顯示WebJob日誌中的異常?

3.)從WebJob控制檯應用程序內發送電子郵件的最佳方式是什麼?例如,如果發生某種情況,我可能希望讓它通過Console.WriteLine或Console.Error.WriteLine向我和/或其他人(取決於條件是什麼)發送電子郵件以及記錄條件。我已經看到有關通過隊列觸發電子郵件或在作業失敗時觸發電子郵件的信息,但是當以WebJob的身份運行時,直接在控制檯應用程序代碼中發送電子郵件的最佳方式是什麼?

回答

3

你的工作如何安排?聽起來你正在使用WebJobs SDK--你是否使用TimerTrigger進行調度(來自Extensions庫)?該擴展庫還包含一個新的SendGrid綁定,您可以使用該綁定從工作職能中發送電子郵件。我們計劃在此基礎上進一步擴展,以促進像您所描述的失敗通知,但目前還沒有。但是,使用新的JobHostConfiguration.Tracing.Trace來插入您自己的TraceWriter,您可以使用它來捕獲錯誤/警告,並按照您認爲合適的方式進行操作,但是沒有任何東西可以阻止您自行構建某些內容。所有這些都在beta1預發佈中。

使用這種插入自定義TraceWriter的方法,我一直在考慮編寫一個允許指定錯誤閾值/滑動窗口的方法,並且如果錯誤率超過,將發送電子郵件或其他通知。所有的作品都在這裏,只是還沒有完成它:)

關於日誌記錄,作業日誌(包括您的Console.WriteLines)實際上寫入您的Web應用程序中的磁盤(details here)。如果您瀏覽網站日誌目錄,您應該能夠看到它們。但是,如果您使用SDK和儀表板,則還可以使用TextWriter/TraceWriter綁定進行日誌記錄。這些日誌將寫入您的存儲帳戶,並在每次調用時顯示在「儀表板功能」頁面中。這是一個example

+0

我有沒有原來具有的WebApp在一個控制檯應用程序工作請介紹一下Azure WebApp的解決方案。我所做的只是用Console.WriteLine替換我的日誌語句,然後在VS 2015中使用Publish as Azure WebJob選項。我通過門戶安排了它。從你所說的聽起來,我可以在服務器上找到日誌文件,並可能在未來使用SDK來獲取更詳細的日誌文件。儘管仍然不確定電子郵件。我可以以某種方式像我通常那樣使用SmtpClient嗎?或者有另一種方式直接從我的代碼發送? – user2684115

+0

不,您無法在Azure Web App作業主機中使用SMTP。你將不得不使用像SendGrid,MailChimp等外部服務。我正在爲WebJobs SDK開發一個漂亮的擴展,這將使設置滑動窗口錯誤監視器變得非常容易,該監視器會在你自動發送電子郵件時超過了錯誤閾值。如果你想在準備好時試試這個,請告訴我。 – mathewc

+0

看起來SendGrid在我目前需要的時候會很好用。我將來可能會考慮使用SDK,但現在我想我已經設置好了。謝謝。 – user2684115

相關問題