Asp.net

Orchard CMS 如何進行日誌記錄?

  • March 22, 2016

我正在使用 Orchard CMS,它對我來說是更好的 CMS。我想了解它是如何進行日誌記錄的,以及我是否可以添加自己的日誌記錄。我看到 Orchard 使用NullLogger類但它不起作用。我打開了 App_Data.Logs 文件夾並看到有日誌文件。但是怎麼做?我在程式碼中搜尋了NullLogger用 log4net 替換的技巧在哪裡(我猜這是 log4net,因為 log4net.config 的日誌格式和格式非常相似)但我沒有找到這個。有人可以回答我:

  1. Orchard 是如何進行伐木的?
  2. 我是否可以添加自己的記錄器,如果可以,有哪些最佳實踐可以做到這一點?

謝謝,安德烈。

一個 Autofac 模組(Orchard.Logging.LoggerModule準確地說)處理這個問題。基本上 - 它掃描每個依賴項並ILogger使用對適當記錄器實例的引用填充類型的所有屬性。每個依賴項都有自己的記錄器,其名稱等於包含類的完整類型名稱(包括命名空間)

只是一個佔位符,因此在Autofac 設置該屬性之前NullLogger訪問該屬性不會拋出s。NullReferenceException

擴展預設日誌記錄是一項相當複雜的任務,因為它需要做三件事:

  • 創建 ILoggerFactory 的自定義實現(就像預設的 Orchard.Logging.CastleLoggerFactory)和
  • 創建一個在容器中註冊該實現的 Autofac 模組(就像提到的LoggerModule那樣)
  • 通過裝飾你的新模組來抑制目前的預設日誌記錄模組[OrchardSuppressDependency("Orchard.Logging.LoggingModule")]

更新

剛剛意識到我沒有在這裡解決問題中最重要的部分:)是的,Orchard 使用 log4net ,因此您可以通過Config/log4net.config文件更改預設設置。

引用自:https://stackoverflow.com/questions/9225040