2010-03-02 64 views
0

簡稱:什麼是Windows服務將日誌文件轉儲到最合適的文件夾?轉儲Windows服務日誌文件的文件夾

詳細

我有產生一個低技術的最終用戶可能會有興趣看(一臺電腦和一個生產線監控傳感器之間的實際通信)日誌文件,一個窗口服務。

計算機是一臺獨立的專用計算機,充當數據採集服務器,它具有監視器並可供最終用戶訪問,但除非出現問題,否則不會觸及。

什麼是最好的(最合適的)地方(文件夾)輸出這些日誌文件?

我的考慮是:

  1. 易於配置(如果我有本地服務帳戶添加到該文件夾​​給訪問)。
  2. 便於終端用戶訪問(再次:他們不應該需要,但偶爾他們可能會想要)。

編輯:它創建了大約10到1Mb的滾動大小的文件。尺寸沒有問題,所以不需要壓縮和清理。

回答

3

我的首選是使用所有用戶文件夾結構。通過在那裏創建一個與您的服務應用程序名稱相同的文件夾,很容易看出內容來自哪裏,您可以在不損害Program Files文件夾的情況下向其授予訪問權限,並且當您卸載或升級您的應用程序時,您將不會離開程序文件中的'孤立'文件夾無法刪除,因爲安裝程序不知道它必須刪除某些日誌文件。

+0

好點。目前我在做: Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)+「/我的服務/日誌」 – 2010-03-02 18:55:41

1

那麼,我會說你的服務安裝到,在/Logs/文件夾。然後添加功能以在稍後階段壓縮這些文件。

通過這樣做,您不會將您的應用程序數據從實際運行的應用程序中分離出來。例如,將其保存到C:\LogDumps\並沒有說明什麼程序首先創建了這些文件,這將是一個噩夢來維護。

+0

如果我在Program Files目錄中安裝服務,我將不願意給'本地服務'寫入'程序文件'中的任何東西。 C:\ LogDumps可能由於同樣的原因而不好,因爲我希望服務能夠在缺失的情況下創建最低級別的文件夾。 – 2010-03-02 18:39:42

+0

您沒有授予程序文件的權限。您正在爲程序文件中的文件夾內的文件夾授予權限。如果您只保留日誌文件夾的權限,則只能訪問日誌文件夾。 – 2010-03-02 18:41:30

+0

正如我所說的「我不願意給'本地服務'寫入'程序文件'中的任何內容」,我的理解是「應用程序數據」目錄的意思 - 避免程序必須寫入程序文件,因此Program Files僅用於程序安裝和安裝級別的配置。 – 2010-03-02 18:43:03

1

我認爲最直觀的登錄位置是服務安裝文件夾中的子文件夾「日誌」。例如,如果服務在這裏安裝:

C:\ Program Files文件\我的公司\我的服務\

把日誌的位置:

C:\ Program Files文件\我的公司\我的服務\ logs \

當應用程序登錄到「文檔和設置」或「我的文檔」區域時,我不喜歡它 - 我不喜歡在應該記錄的文件夾中創建垃圾成爲我的文檔。

+0

與我所說的相同;) – 2010-03-02 18:38:55

+0

某些應用程序寫入「文檔和設置」區域的原因在於,根據正在運行的服務進程的所有者,權限的限制較少。 – Joe 2010-03-02 18:40:42

+0

我的文檔不是一個好的選項,因爲用戶「Bob」將具有與用戶「本地服務」(女巫windows服務正在運行的帳戶)不同的「我的文檔」位置。 – 2010-03-02 18:51:38

相關問題