ASP.NET Core可視化日誌組件使用
前言
今天站長推薦一款日誌可視化組件LogDashboard
,可以不用安裝第三方進程,只需要在項目中安裝相應的Nuget包,添加數行程式碼,就可以實現擁有帶Web頁面的日誌管理面板,十分nice哦。
下面是官方介紹:
官方文檔地址://doc.logdashboard.net/
LogDashboard
是在github上開源的aspnetcore項目, 它旨在幫助開發人員排查項目運行中出現錯誤時快速查看日誌排查問題通常我們會在項目中使用nlog、log4net等日誌組件,它們用於記錄日誌的功能非常強大和完整,常見情況會將日誌寫到txt或資料庫中, 但通過記事本和sql查看日誌並不簡單方便.
LogDashboard
提供了一個可以簡單快速查看日誌的面板.
LogDashboard
適用於aspnetcore 2.x – aspnetcore3.x 項目, 採用aspnetcore中間件技術開發. 輕量快速
OK,本文帶大家從0創建一個ASP.NET Core Web API
新項目,然後添加日誌組件Serilog
,最後搭配使用LogDashboard
完成此項目。
相信使用LogDashboard
能極大提高你平時工作中的問題排查速度。
步驟:
- 創建一個ASP.NET Core Web API項目
- 添加
Serilog
日誌組件 - 添加
LogDashboard
- 可視化日誌演示
本文實戰開始
1. 創建一個ASP.NET Core Web API項目
這一步很簡單,使用VS 2019,創建一個ASP.NET Core Web API
項目,命名為LogDashboardDemo。
2. 添加 Serilog 日誌組件
2.1 Nuget 安裝 Serilog 包
Install-Package Serilog.AspNetCore
2.2 Program.cs 中添加 Serilog 配置
public class Program
{
public static void Main(string[] args)
{
string logOutputTemplate = "{Timestamp:HH:mm:ss.fff zzz} || {Level} || {SourceContext:l} || {Message} || {Exception} ||end {NewLine}";
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Default", LogEventLevel.Information)
.MinimumLevel.Override("Microsoft", LogEventLevel.Error)
.MinimumLevel.Override("Microsoft.Hosting.Lifetime", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Console(theme: Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme.Code)
.WriteTo.File($"{AppContext.BaseDirectory}Logs/Dotnet9.log", rollingInterval: RollingInterval.Day, outputTemplate: logOutputTemplate)
.CreateLogger();
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSerilog()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
注意程式碼中輸出日誌的格式,日誌分隔符使用 “||”,這是LogDashboard
組件的建議,當然你可以修改,詳細配置見LogDashboard
文檔。
2.3 驗證日誌組件安裝成功
在Startup.cs中添加測試日誌
public void ConfigureServices(IServiceCollection services)
{
Log.Information("ConfigureServices");
Log.Error("測試Serilog添加異常日誌");
Log.Fatal("測試Serilog添加嚴重日誌");
// ....
}
運行項目:
輸出目錄下產生日誌文件:\LogDashboardDemo\bin\Debug\net6.0\Logs\Dotnet920210417.log
08:37:27.884 +08:00 || Information || || ConfigureServices || ||end
08:37:27.964 +08:00 || Error || || 測試Serilog添加異常日誌 || ||end
08:37:27.965 +08:00 || Fatal || || 測試Serilog添加嚴重日誌 || ||end
08:37:28.154 +08:00 || Information || || Configure || ||end
08:37:28.423 +08:00 || Information || Microsoft.Hosting.Lifetime || Now listening on: "//localhost:5000" || ||end
08:37:28.427 +08:00 || Information || Microsoft.Hosting.Lifetime || Application started. Press Ctrl+C to shut down. || ||end
08:37:28.427 +08:00 || Information || Microsoft.Hosting.Lifetime || Hosting environment: "Development" || ||end
08:37:28.428 +08:00 || Information || Microsoft.Hosting.Lifetime || Content root path: "C:\Users\Administrator\Desktop\LogDashboardDemo" || ||end
控制台輸出:
好了,日誌組件已經添加成功,進入下一步。
3. 添加 LogDashboard
3.1 Nuget安裝 LogDashboard 包
Install-Package Serilog.AspNetCore
3.2 配置 LogDashboard
這一步很簡單,真的很簡單,打開Startup.cs,添加如下程式碼:
public void ConfigureServices(IServiceCollection services)
{
services.AddLogDashboard();
// ...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseLogDashboard();
// ...
}
這一步就完成了,使用 LogDashboard
就是這麼簡單。
4. 可視化日誌演示
運行項目,瀏覽器地址欄輸入://localhost:5000/logdashboard
就是日誌管理面板,直接錄一個小影片演示下吧:
時間如流水,只能流去不流回。
- 公眾號:Dotnet9
- 作者、編輯:沙漠盡頭的狼
- 日期:2021-04-17