Net6引用Nlog辦法

  • Carter Ho
  • 8 Minutes
  • 2023年11月7日

Net6引用Nlog辦法

程式運作狀況最好的辦法就是利用日誌做紀錄,Nlog跟Net6有做了整合,不管是在Asp.net Core或是Console都可以使用,這裡利用appsetting.json配置nlog設定檔做整合事例

1.建立Asp.net Core專案


2.引用nuget參考

1
2
3
4
5
<ItemGroup>
<PackageReference Include="NLog" Version="5.2.5" />
<PackageReference Include="NLog.Extensions.Logging" Version="5.3.5" />
<PackageReference Include="NLog.Web.AspNetCore" Version="5.3.5" />
</ItemGroup>

3.配置ConfigHelper

4.配置appsetting.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
"Logging": {
"LogLevel": {
"Default": "Information",
"System": "Error",
"Microsoft": "Error"
}
},
"AllowedHosts": "*",
"NLog": {
"autoReload": true,
"throwConfigExceptions": true,
"internalLogLevel": "Info",
"internalLogFile": "${basedir}/internal-nlog.txt",
"extensions": [
{ "assembly": "NLog.Extensions.Logging" },
{ "assembly": "NLog.Web.AspNetCore" }
],
"default-wrapper": {
"type": "AsyncWrapper",
"queueLimit": 10000,
"timeToSleepBetweenBatches": 100,
"batchSize": 1000,
"overflowAction": "Grow"
},
"targets": {
"file": {
"type": "File",
"encoding": "utf-8",
"layout": "${date:universalTime=true:format=yyyy-MM-dd HH\\:mm\\:ss.fff} ${uppercase:${level}} ${logger} ${message} ${exception:format=tostring}",
"fileName": "LogFiles/NetCore/NetCore.log",
"archiveFileName": "LogFiles/NetCore/NetCore.{#}.log",
"archiveNumbering": "Date",
"archiveEvery": "Hour",
"archiveDateFormat": "yyyyMMdd-HH",
"maxArchiveFiles": 24
}
},
"rules": [
{
"logger": "*",
"minlevel": "Info",
"writeTo": "file"
}
]
}
}

5.配置Program註冊/啟用服務並試寫日誌

6.建立controller並注入ILogger寫入日誌