Microsoft.Extensions.Logging 日志組件拓展
- 文件文本日志
- 文件文本日志UI插件
- 自定義介質日志
Microsoft.Extensions.Logging.File文件文本日志
安裝配置完插件后,你的asp.net core程序會將輸出的日志保存在程序根目錄下的logs文件夾,並以日期划分文件名
配置
-
安裝Huanent.Logging.File nuget包
-
在Program.cs文件中添加
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
手動高亮 --> .ConfigureLogging(builder => builder.AddFile())
.Build();
- 配置appsettings.json文件,添加File節點
{
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
},
手動高亮 --> "File": {
手動高亮 --> "LogLevel": {
手動高亮 --> "Default": "Warning" //具體輸入級別自行修改,也可添加詳細的分類別輸出
手動高亮 --> }
手動高亮 --> }
}
}
步驟3可忽略,如果忽略會將所有類別日志都輸出到文本文件
Microsoft.Extensions.Logging.File.UI
- 安裝Huanent.Logging.File.UI nuget包
- 修改Startup.cs
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
手動高亮 --> services.AddLoggingFileUI();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
手動高亮 --> app.UseStaticFiles();
手動高亮 --> app.UseMvc();
}
}
- 啟動網站,訪問頁面http://xxxxx:xx/logging 即可打開頁面查看日志
Microsoft.Extensions.Logging.Abstract 自定義介質日志
可以通過實現ILoggerWriter來自定義日志輸出保存的介質
配置
-
安裝Huanent.Logging.Abstract nuget包
-
實現ILoggerWriter
public class MyLogWriter : ILoggerWriter
{
public void WriteLog(LogLevel level, string message, string name, Exception exception, EventId eventId)
{
//在此處自定義日志的保存方式。可以保存到數據庫,雲等。。。
//注意!MyLogWriter對象在DI容器中是單例形式存在的!
//注意!請勿在MyLogWriter中進行會日志輸出的操作,那可能會導致循環遞歸,棧溢出!
}
}
- 在Program.cs文件中添加
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
手動高亮 --> .ConfigureLogging(builder => builder.AddAbstract<MyLogWriter>())
.Build();
- 配置appsettings.json文件,添加Abstract節點
{
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
},
手動高亮 --> "Abstract": {
手動高亮 --> "LogLevel": {
手動高亮 --> "Default": "Warning" //具體輸入級別自行修改,也可添加詳細的分類別輸出
手動高亮 --> }
手動高亮 --> }
}
}
步驟4可忽略,如果忽略會將所有類別日志都輸出