logdashboard
日志面板是我在Github寫的一個開源項目,旨在讓查看日志變的方便快捷。在線預覽
現在功能有日志檢索、趨勢圖、異常堆棧快速查看、日志詳情等
logdashboard支持自定義日志模型可以記錄更多自定義的屬性。
logdashboard支持的日志來源有以下兩種,推薦在開發時使用文件源,部署生產環境時使用數據庫源
- 文件源
- 數據庫源
在部署時支持頁面授權與自定義身份驗證過濾器
更多介紹請參見官網
快速入門
確保機器上安裝了DotNetCore SDK,打開PowerShell運行以下命令,我們將創建一個AspNetCore空項目
dotnet new empty
安裝Nlog日志組件
使用VSCode或VisualStudio打開項目,這時我們還需要做一些其他的准備工作。日志組件選用Nlog
Install-Package NLog.Web.AspNetCore
打開Program.cs在CreateWebHostBuilder方法中添加Nlog中間件,復制以下代碼覆蓋CreateWebHostBuilder方法
public static IWebHost CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Information);
})
.UseNLog()
.Build();
添加一個Nlog.config到項目中,並右鍵文件設置為復制到輸出目錄(始終復制),以下是Nlog.config的全部內容
- 配置文件需要分隔符才可以被NLogDashboard解析,默認是||與||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。這時就能看到日志面板了