2008-10-06 91 views
10

我必須開發一個使用C#.net的應用程序,該應用程序必須每天運行一次。它最多隻能運行一分鐘,因此開發Windows服務已經過時了,並且計劃任務是合適的方式。爲Windows開發計劃任務

不過,我對應用程序如何傳達其結果幾個問題:

  • 如何指示該任務已經失敗的任務調度?這是通過程序的退出代碼嗎?
  • 如何記錄輸出信息?控制檯輸出是自動捕獲還是必須顯式寫入事件查看器?

回答

7

在回答您的問題 -

  1. 如果一個任務,因爲它拋出一個未經檢查的異常,你會看到,在Sheduled任務觀衆,將有一個「最後結果」具有價值的東西失敗如0xe0434f4d。或者,如果您返回的退出代碼也將顯示在「計劃任務」查看器的「最後結果」列中。

  2. 寫入控制檯例如Console.WriteLine("blah");不會出現在任何地方。您需要寫入事件日誌或日誌文件。

0

AFAIK調度器只是啓動一個進程。您可以使用事件日誌或其他日誌記錄系統記錄稍後需要引用的信息。

4

如果你去日誌文件方式,你仍然可以使用Console.WriteLine("blah");。訣竅是重定向標準錯誤流:

 StreamWriter mylog = new StreamWriter("mylog.log"); 
     Console.SetOut(mylog); 
     Console.SetError(mylog); 

你也需要經常刷新緩衝區,以確保日誌文件包含最新信息。

  Console.Out.Flush(); 

這是快速和骯髒的,你真的應該使用Windows事件日誌log4net

0

Log4net是一個很好的完整的日誌框架。我可以強烈推薦它。