ASP.NET Core視覺化日誌元件使用

ASP.NET Core視覺化日誌元件使用

今天站長推薦一款日誌視覺化元件`LogDashboard`,可以不用安裝第三方行程,只需要在專案中安裝相應的**NuGet**套件,新增數行程式碼,就可以實現擁有帶Web頁面的日誌管理面板,十分nice哦。

最後更新 2021/4/17 下午8:41
沙漠尽头的狼
預計閱讀 4 分鐘
分類
ASP.NET Core
標籤
.NET C# ASP.NET Core UI設計 NuGet

可視化日誌組件:LogDashboard:

可視化日誌組件:LogDashboard

前言

今天站長推薦一款日誌可視化組件LogDashboard,可以不用安裝第三方進程,只需要在專案中安裝相應的NuGet套件,加入數行程式碼,就可以實現擁有帶 Web 頁面的日誌管理面板,十分 nice 哦。

下面是官方介紹:

官方文件位址:https://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: "http://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 LogDashboard

3.2 配置 LogDashboard

這一步很簡單,真的很簡單,打開Startup.cs,加入如下程式碼:

public void ConfigureServices(IServiceCollection services)
{
  services.AddLogDashboard();
  // ...
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
  app.UseLogDashboard();
  // ...
}

這一步就完成了,使用 LogDashboard就是這麼簡單。

4. 可視化日誌演示

運行專案,瀏覽器網址列輸入:http://localhost:5000/logdashboard就是日誌管理面板,直接錄一個小影片演示下吧:

繼續探索

延伸閱讀

更多文章