ASP.NET Core可視化日誌組件使用

可視化日誌組件:LogDashboard

前言

今天站長推薦一款日誌可視化組件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能極大提高你平時工作中的問題排查速度。

步驟:

  1. 創建一個ASP.NET Core Web API項目
  2. 添加Serilog日誌組件
  3. 添加LogDashboard
  4. 可視化日誌演示

本文實戰開始

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
Tags: