首页 > 其他分享 >.NET 6 使用 LogDashboard 可视化日志

.NET 6 使用 LogDashboard 可视化日志

时间:2023-12-07 16:34:26浏览次数:30  
标签:自定义 LogDashboard 可视化 https 表名 logdashboard NET 日志

在上一篇中我使用Nlog记录日志到了数据库,接下来我们进行日志的可视化展示

1. 关于LogDashboard

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

Tips: 项目已经有两年没有更新了

官网地址 https://logdashboard.net/
在线演示地址 https://logdashboard.net/logdashboard
文档地址 https://doc.logdashboard.net/
GitHub地址 https://github.com/realLiangshiwei/LogDashboard

2. 安装LogDashboard

img

3.Program.cs

   //获取appsettings.json 文件中的数据库连接字符串
    var connectionString = builder.Configuration.GetConnectionString("Context");
   // 添加日志面板 
   builder.Services.AddLogDashboard(options =>
   {
       options.UseDataBase(() => new SqlConnection(connectionString));
       //自定义数据模型
       options.CustomLogModel<CustomLogModel>();
   });

   //启用日志面板
   app.UseLogDashboard();

4. 修改Nlog表结构与表名

由于LogDashboard需要通过表名Log(从源码中我们可以看到不支持自定义表名)来获取数据,所以我们需要修改Nlog的表名称为Log
img

而且日志模型中必须包含以下5个属性才会被LogDashboard解析
img

图中的LongDate与上一篇中的字段Logged 是一样的,都是记录日志的时间,所以我们将表字段改为Logged,并修改nlog.config文件中的配置
img

5. 效果展示

首页
img
日志列表
img
日志详情
img

6. 遗憾之处

1.日志列表中筛选日志等级时除了All查询出来有数据之外,其他等级都无法查询出数据
通过查看网络请求及源码,查看到传递的参数是大写
img
img

但即使数据库中的Level字段是大写,还是查询不出来数据
img

查询的方法是这样写的,有知道的大佬帮忙解答一下
img
2.表名不支持自定义,只能使用默认的Log表名

标签:自定义,LogDashboard,可视化,https,表名,logdashboard,NET,日志
From: https://www.cnblogs.com/wofeiliangren/p/17883318.html

相关文章

  • 可视化监控/安防视频云平台公共区域人员行为安全监控方案
    大家在浏览新闻时,经常会看到某某地区有人员摔倒,长时间无人发现或人员闯入某危险区域管理人员未及时劝离,导致发生了意外事故的新闻。由于人力资源和人为巡检能力有限,在很多公共区域无法及时检测人员行为从而导致危险发生。为确保公共区域人员行为的安全,旭帆科技基于AI视频视频技术的......
  • 探索正则可视化工具:让编程更直观、高效
    导语:在当今的编程世界中,正则表达式已成为不可或缺的技能。然而,理解和编写正则表达式往往是一项具有挑战性的任务。为了降低门槛,提高编程效率,正则可视化工具应运而生。一、正则表达式的简介与历史正则表达式(RegularExpression,简称:Regex)是一种强大的文本处理工具,其最早的雏形可......
  • Modbus转Profinet网关连接EthernetIP协议的PLC和Modbus协议的仪表
    本案例是客户现场有多个气体探测仪,但是无法直接接入罗克韦尔系统中,因为气体探测仪是标准的ModbusRTU协议,需要配置的数据要通过Modbus转EtherNET/IP网关来实现和PLC的Ethernet网络进行通讯。使用设备为PLC、Modbus转EtherNET/IP网关、Modbus从站为气体探测仪。 项目中通讯配置方......
  • 在.net中通过自定义LoggerProvider将日志保存到数据库方法(以mysql为例)
     在.NET中,Microsoft.Extensions.Logging是一个灵活的日志库,它允许你将日志信息记录到各种不同的目标,包括数据库。在这个示例中,我将详细介绍如何使用Microsoft.Extensions.Logging将日志保存到MySQL数据库。我们将使用EntityFrameworkCore来与MySQL数据库进行交互。步骤一:创......
  • 深度学习3D网络---PointNet
    常见的3D数据表示方式有点云、多视图、体素、mesh网格等。PointNet是直接处理点云数据的网络,可以实现对点云的分类和分割,其首页地址为:http://stanford.edu/~rqi/pointnet/。主要从解决点云的无序性和保证旋转一致性两个方向出发,提出了以点云作为输入的分类网络和分割网络。一......
  • 可视化学习:WebGL的基础使用
    引言继续复习可视化的学习。WebGL和其他Web端的图形系统存在很大的不同,是OpenGLES规范在浏览器的实现,它最大的不同就在于它更接近底层,可以由开发者直接操作GPU来实现绘图,性能很好,可以充分利用GPU并行计算的能力,并且WebGL还支持3D物体的渲染;WebGL最大的缺点应该就在于它的使用比......
  • 用最清爽的方式开发dotNet
    用最清爽的方式开发dotNet不管是官方自带模板还是其他开源搞的,总是一来一大堆,如果你也嫌弃这些过于臃肿,不如看看我这个方式前提假设我要做一个简单的api方式想到清爽,那肯定是简单方便,脑袋第一个念头就是.Net6推出的miniapi了官方路子使用ASP.NETCore创建最小API......
  • Istio与Kubernetes:资源管理与协同解析
    本文分享自华为云社区《istio资源介绍以及和kubernetes资源扭转关系》,作者:可以交个朋友。一、istio原理Istio的原理是拦截Kubernetes中创建Pod的事件,然后向Pod中注入一个包含Envoy的容器,进出Pod的流量会被“劫持”到Envoy进行处理。由于流量被“劫持”了,所以Istio......
  • .net core DataTable.Load()方法,返回的行缺少,少于reader读出的行
     我分析的原因是,datatable模式的schema默认是根据查询的sql来的。起因是我写的sql中带有主键的列,查出来有很多重复值,然后dt.load会默认把主键重复的行给合并掉,所以最终查询出来的都是主键不重复的数据行,重复的行都被合并掉了,所以就缺失了。另外,dt.load有个重载版本,我的理解是......
  • 【Kubernetes存储篇】StorageClass存储类动态生成PV详解
    一、StorageClass存储类理论StorageClass的作用主要有以下几个方面:动态存储卷分配:StorageClass可以根据定义的属性动态地创建存储卷,无需手动创建和管理存储卷。存储卷的属性管理:StorageClass可以定义存储卷的属性,如存储类型、存储容量、访问模式等,从而更好地满足应用程序的存储需......