LogDashboard
logdashboard是在github上開源的aspnetcore項目, 它旨在幫助開發人員排查項目運行中出現錯誤時快速查看日志排查問題
通常我們會在項目中使用nlog、log4net等日志組件,它們用於記錄日志的功能非常強大和完整,常見情況會將日志寫到txt
或數據庫
中, 但通過記事本和sql查看日志並不簡單方便. LogDashboard提供了一個可以簡單快速查看日志的面板.
LogDashboard適用於aspnetcore 2.x - aspnetcore3.x 項目, 采用aspnetcore中間件
技術開發. 輕量快速。
官網地址 https://logdashboard.net/
在線演示地址 https://logdashboard.net/logdashboard
文檔地址 https://doc.logdashboard.net/
頁面預覽
首頁
實時查看應用程序運行中產生的日志
- 日志聚合
- 趨勢圖表
- 最近十條日志
列表
復合檢索所有日志並查看詳情等操作
特性
- 授權訪問
- 自定義日志模型
- 日志追蹤
- 堆棧查看
支持的日志組件
- nlog
- log4net
- serilog
支持的數據源
- txt
- 數據庫
快速開始
本文示例源碼在 https://github.com/liangshiw/LogDashboard/tree/master/samples/DotNetCoreEmptyUseNlog
創建NetCore項目
確保機器上安裝了NetCore SDK,打開PowerShell運行以下命令,我們將創建一個AspNetCore空項目
dotnet new empty
安裝Nlog日志組件
使用VSCode或VisualStudio打開項目,這時我們還需要做一些其他的准備工作。日志組件選用Nlog
Install-Package NLog.Web.AspNetCore
打開Program.cs
在CreateHostBuilder
方法中添加Nlog中間件,復制以下代碼覆蓋CreateHostBuilder
方法
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder=>
{
webBuilder.UseStartup<Startup>()
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Information);
})
.UseNLog();
});
添加一個Nlog.config到項目中,並右鍵文件設置為復制到輸出目錄,以下是Nlog.config的全部內容
配置文件需要分隔符才可以被LogDashboard解析,默認是||與||end,也可以自定義,請參閱LogDashboard配置
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
<variable name="myvar" value="myvalue"/>
<targets>
<target xsi:type="file" name="File" fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate}||${level}||${logger}||${message}||${exception:format=ToString:innerFormat=ToString:maxInnerExceptionLevel=10:separator=\r\n}||end" />
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="file" />
</rules>
</nlog>
安裝 LogDashboard
准備工作已經結束,這時安裝 LogDashboard
Install-Package LogDashboard
打開Startup.cs我們要做兩件事
- 在
ConfigureServices
方法中配置服務
public void ConfigureServices(IServiceCollection services)
{
services.AddLogDashboard();
}
關於更多的配置請參閱 LogDashboard配置
- 在
Configure
方法中配置中間件
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseLogDashboard();
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}
運行項目,在瀏覽器中導航到 /logdashboard
enjoy
線路圖
- 日志中心