在ASP.NET Core API 專案中使用NLog將Log寫入檔案
Visual 版本 : 2017 .NET Code 版本 : 2.2 操作目標 : 將Log寫入檔案與顯示在偵錯的輸出視窗 新增ASP.NET Core API專案 使用Nuget安裝NLog相關套件 1.NLog.Web.AspNetCore 2.NLog 新增NLog.config設定檔 新增方式有兩種: 1.手動自己新增檔案 2.安裝套件NLog.config自動產生檔案 第2種方法發現有個奇怪的地方 自動建立的NLog.config檔案並不會建立在專案目錄下 而是建立在其他目錄中 若您有新增多個專案,皆有安裝此套件 那在編輯NLog.config檔案時,其實會修改到其它的專案設定 因為這些專案參考的都是同一個檔案 且無法更改檔案名稱,覺得蠻奇怪的, 所以我的方法是,安裝完把設定檔另外複製下來貼到專案下,再把此套件移除XD 設定NLog.config屬性 若透過自行產生檔案的方式,請記得將NLog.config的 複製到輸出目錄 修改為 永遠複製 若忽略此步驟,後續整個專案會遇到 HTTP Error 500.30 - ANCM In-Process Start Failure 錯誤而無法執行 調整NLog.config的targets與rules設定 我們先將28 29 與38行移出註解區域,這樣子才能進行測試,先介紹Target與Rule兩大設定,他們彼此之間是相關聯的 Target 預設的設定中,有一個名稱為f 並使用寫入檔案的方式來記錄log 有兩個重要屬性 1. xsi:type 這邊可以設定要將Log記錄在哪邊,例如寫入檔案、顯示在Debug的輸入視窗或者是寫入資料庫等等 2. name 這邊是一個具有辨識的唯一值,等一下會在Rule中使用到 其它屬性 fileName:定義寫入的檔案名稱,將以日期為檔名 layout: Log輸出的格式 相關參數的使用可參考這邊 https://nlog-project.org/config/?tab=layout-renderers Rule 預設設定中,