2015-04-15 47 views
0

如果我有一個asp.net webAPI,我正在做我自己的自定義日誌記錄是否存在關於將這些日誌放在哪裏的最佳做法?關於只讀設置IIS日誌記錄的最佳做法

最初我試圖登錄到$ {basedir}/logs/$ {shortdate} .log。然而,我的基礎軟件是我的項目的舊名稱,我不知道這個價值來自哪裏或如何改變它?

但是,我注意到的下一件事是日誌文件夾似乎只讀在IIS默認日誌到的地方。我似乎不能改變這一點。我在思考當IIS運行它默認情況下使此只讀,因此沒有人可以在惡意攻擊期間刪除日誌。

因此,我決定登錄到不同的目錄以避免此問題。這是最好的做法,還是應該嘗試一種不同的方法,我正在使用Nlog,如果它的相關?

回答

1

我不知道如果我把它稱爲最佳實踐,但以我的經驗本地登錄到文件不會規模非常好生產環境:

  • 如果要加載多個網頁平衡服務器,那麼您必須嘗試將多個來源的日誌文件合併在一起,並關聯事件
  • 您必須先登錄到生產箱才能嘗試檢索日誌,這意味着沒有完全生產訪問權限的人員無法診斷問題日誌。

替代方案包括記錄到中央數據庫或(現在我的首選選項)登錄到日誌服務器,如seq。您可以使用NLog登錄seq,方法如下:NLog documentation page

如果您確實想使用光盤上的文件,那麼我會在應用程序根目錄的「logs」子文件夾中建議一組滾動日誌文件。

+0

+1謝謝。我認爲我可以很好地擴展規模,因爲當這些機器在雲中推出時,我們會自動爲他們整合日誌而設置一個splunk forwarder。 將調查Seq,這似乎是一個好/更好的主意。 –