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

dav2100發表於2021-09-09

圖片描述

前言

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

下面是官方介紹:

官方文件地址:

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.UseStartupStartup>();
      });
}

注意程式碼中輸出日誌的格式,日誌分隔符使用 “||”,這是LogDashboard元件的建議,當然你可以修改,詳細配置見LogDashboard文件。

2.3 驗證日誌元件安裝成功

Startup.cs中新增測試日誌

public void ConfigureServices(IServiceCollection services)
{
  Log.Information("ConfigureServices");
  Log.Error("測試Serilog新增異常日誌");
  Log.Fatal("測試Serilog新增嚴重日誌");
  // ....
}

執行專案:

輸出目錄下產生日誌檔案:LogDashboardDemobinDebugnet6.0LogsDotnet920210417.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: "" ||  ||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:UsersAdministratorDesktopLogDashboardDemo" ||  ||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. 視覺化日誌演示

執行專案,瀏覽器位址列輸入:/logdashboard就是日誌管理皮膚,直接錄一個小影片演示

作者:Dotnet9個人部落格
原文出處:https://www.cnblogs.com/Dotnet9-com/p/14672049.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4479/viewspace-2797797/,如需轉載,請註明出處,否則將追究法律責任。

相關文章