项目介绍

WatchDog是一个(MIT License)、针对ASP.Net Core Web应用程序和API的实时应用监控系统。开发者可以实时记录和查看他们的应用程序中的消息、事件、HTTP请求和响应,以及运行时捕获的异常。

工作原理

它利用SignalR进行实时监控,并使用LiteDB作为无需配置的类似MongoDB的无服务器数据库,同时也支持使用外部数据库(如MSSQL、MySQL、Postgres、MongoDB)。

主要功能

  • 实时记录并展示 HTTP 请求与响应。
  • 实时捕获并记录应用程序在运行时产生的异常。
  • 提供友好的日志查看界面,支持搜索和过滤功能。
  • 支持多种数据库作为后端存储,包括 LiteDB(无服务器 MongoDB-like 数据库)以及 MSSQL、MySQL、Postgres、MongoDB 等外部数据库。

技术特点

  • 利用 SignalR 实现实时监控。
  • 提供丰富的配置项,如黑名单、序列化器、CORS 策略等。
  • 支持 .NET Core 3.1 及更高版本,以及官方支持 .NET8。

项目的作用

  • 实时监控:通过 SignalR 技术,WatchDog 能够实时地记录并展示应用程序中的各类信息,包括 HTTP 请求与响应、异常等。
  • 异常捕获:能够捕获并记录应用程序在运行时产生的异常,帮助开发者快速定位并解决问题。
  • 日志管理:提供了友好的日志查看界面,支持搜索、过滤等功能,方便开发者管理和分析日志数据。
  • 扩展性强:支持多种数据库作为后端存储,同时提供了丰富的配置项,如黑名单、序列化器、CORS 策略等,满足不同开发场景的需求。

项目使用

WatchDog安装

Install-Package WatchDog.NET --version 1.4.11

 

WatchDog服务注册

在ASP.NET Core Web API的Program.cs中注册WatchDog服务:

services.AddWatchDogServices();

设置到外部数据库

添加数据库连接字符串并选择 DbDriver 选项:

services.AddWatchDogServices(opt => 
{
   opt.IsAutoClear = true; 
   opt.SetExternalDbConnString = "Server=localhost;Database=testDb;User Id=postgres;Password=root;"; 
   opt.DbDriverOption = WatchDogDbDriverEnum.PostgreSql; 
});

可选配置

app.UseWatchDog(opt => 
{ 
   opt.WatchPageUsername = "admin"; 
   opt.WatchPagePassword = "Qwerty@123"; 
   //Optional
   opt.Blacklist = "Test/testPost, api/auth/login"; //Prevent logging for specified endpoints
   opt.Serializer = WatchDogSerializerEnum.Newtonsoft; //If your project use a global json converter
   opt.CorsPolicy = "MyCorsPolicy";
   opt.UseOutputCache = true;
   opt.UseRegexForBlacklisting = true;
 });

运行效果展示

版权声明:
1、本网站名称:帝企吧
2、本站永久网址:https://www.diqiba.com
3、本网站的文章部分内容可能来源于网络及作者投稿,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
7、本站所有资源来源于互联网,仅用于学习及参考使用,切勿用于商业用途,如产生法律纠纷本站概不负责! 8、资源除标明原创外均来自网络转载,版权归原作者所有,若侵犯到您权益请联系我们删除,我们将及时处理! 9、若您需使用非免费的软件或服务,请购买正版授权并合法使用!