vlambda博客
学习文章列表

【中间件】c#/.net使用LogDashbaord搭建可视化的日志面板

     Logdashboard是在github上开源的aspnetcore项目, 它旨在帮助开发人员排查项目运行中出现错误时快速查看日志排查问题


主要功能

日志聚合

趋势图表

最近十条日志

授权访问

自定义日志模型

日志追踪

堆栈查看


 第一步打开VS新建.net项目我这里用的是.net core webapi 进行演示(

 

第二步 使用Nuget安装NLog.Web.AspNetCore包和 LogDashboard

 

第三步在Program.cs中的CreateHostBuilder添加Nlog中间件

 webBuilder.UseStartup<Startup>() .ConfigureLogging(logging => { logging.ClearProviders(); logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Information); }) .UseNLog(); });


第四步添加一个Nlog.config到项目中,并右键文件设置为复制到输出目录(始终复制),以下是Nlog.config的全部内容


配置文件需要分隔符才可以被LogDashboard解析,默认是||与||end,当然这些可以自定义,这里就不具体详细说明了



<?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>



第四步配置Startup


首先在ConfigureServices方法中配置服务

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

然后在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




总结

本篇博客描述了使用LogDashbaord搭建可视化的日志面板

如果觉得还不错,请给个关注