.NET 6 使用 LogDashboard 可视化日志
在上一篇中我使用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
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
而且日志模型中必须包含以下5个属性才会被LogDashboard解析
图中的LongDate与上一篇中的字段Logged 是一样的,都是记录日志的时间,所以我们将表字段改为Logged,并修改nlog.config文件中的配置
5. 效果展示
访问地址:http://127.0.0.1:7128/logdashboard
首页
日志列表
日志详情
6. 遇到的问题
1.日志列表中筛选日志等级时除了All查询出来有数据之外,其他等级都无法查询出数据
通过查看网络请求及源码,查看到传递的参数是大写
但即使数据库中的Level字段是大写,还是查询不出来数据
查询的方法是这样写的,有知道的大佬帮忙解答一下
2.表名不支持自定义,只能使用默认的Log表名
感谢评论区 @前途无亮 大佬的指出
上面中日志列表中查询不到数据的原因确如大佬所说的那样,是因为在配置文件中Level 前面多了一个空格,导致写入的数据前面多了一个空格,所以查询不到数据