文章目录

  • 前言
  • 一、性能监控工具WatchDog的使用
    • 1.安装包
    • 2.添加引用
    • 3.配置 WatchDog 中间件
    • 4.运行程序
      • 4.1 登录页面
      • 4.2 查看 Http 请求和响应
      • 4.3 查看异常信息
      • 4.4 记录日志信息

前言

所谓日志(Log)是指系统所指定对象的某些操作和其操作结果按时间有序的集合。每个日志文件由日志记录组成,每条日志记录描述了一次单独的系统事件。通常情况下,系统日志是用户可以直接阅读的文本文件,其中包含了一个时间戳和一个信息或者子系统所特有的其他信息。

日志文件为服务器、工作站、防火墙和应用软件等IT资源相关活动记录必要的、有价值的信息,这对系统监控、查询、报表和安全审计是十分重要的。日志文件中的记录可提供以下用途:监控系统资源;审计用户行为;对可疑行为进行告警;确定入侵行为的范围;为恢复系统提供帮助;生成调查报告;为打击计算机犯罪提供证据来源。

WatchDog 是一个使用 C# 开发的开源的轻量监控工具,它可以记录和查看 ASP.NET Core Web 和 WebApi 的实时消息、事件、异常、 Http 请求响应等。

WatchDog功能特性主要有:

  • 实时 HTTP 请求和响应记录
  • 实时异常记录
  • 代码内消息和事件记录
  • 用户友好的查询页面
  • 身份验证
  • 数据定期清除

相关网址:https://github.com/IzyPro/WatchDog

一、性能监控工具WatchDog的使用

1.安装包

通过 .NET CLI 安装 WatchDog.NET

dotnet addpackage WatchDog.NET --version 1.3.2

或者使用包管理器安装

Install-Package WatchDog.NET --version 1.3.2

2.添加引用

默认使用本地文件数据库

builder.Services.AddWatchDogServices();

也可以选择外部的 MSSQL, MySQL & PostgreSQL 数据库

services.AddWatchDogServices(opt =>
{opt.SetExternalDbConnString = "DbConnString";opt.SqlDriverOption = WatchDogSqlDriverEnum.PostgreSql;
});

3.配置 WatchDog 中间件

//配置中间件
app.UseWatchDog(opt =>
{opt.WatchPageUsername = "admin";opt.WatchPagePassword = "123456";
});

4.运行程序

4.1 登录页面

访问 /watchdog 路径,账号密码就是中间件配置的

4.2 查看 Http 请求和响应

访问https://localhost:7018/WeatherForecast/


4.3 查看异常信息

4.4 记录日志信息

using Microsoft.AspNetCore.Mvc;
using WatchDog;namespace WebApiTest.Controllers
{[ApiController][Route("[controller]")]public class WeatherForecastController : ControllerBase{private static readonly string[] Summaries = new[]{"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"};private readonly ILogger<WeatherForecastController> _logger;public WeatherForecastController(ILogger<WeatherForecastController> logger){_logger = logger;}[HttpGet(Name = "GetWeatherForecast")]public IEnumerable<WeatherForecast> Get(){try{throw new Exception("User is already registered!");}catch (Exception e){WatchLogger.Log(@$"我是看门狗日志:{e.Message}-{e.Data}");}return Enumerable.Range(1, 5).Select(index => new WeatherForecast{Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),TemperatureC = Random.Shared.Next(-20, 55),Summary = Summaries[Random.Shared.Next(Summaries.Length)]}).ToArray();}}
}

【愚公系列】2022年12月 .NET CORE工具案例-性能监控工具WatchDog的使用相关推荐

  1. 【愚公系列】2022年12月 .NET CORE工具案例-滑块验证码和拼图验证功能实现

    文章目录 前言 1.滑块验证码的定义 2.滑块验证码的安全性分析 3.滑块验证码的第三方服务 一.滑动验证码和拼图验证功能实现 1.逻辑分析 2.新建项目 3.配置缓存 4.配置跨域 5.后端源码 6 ...

  2. 【愚公系列】2022年12月 .NET CORE工具案例-多语言离线翻译系统

    文章目录 前言 1.在线翻译 2.离线翻译 一.多语言离线翻译系统 1.开发环境 2.准备离线翻译包 3.准备python代码 4.调试翻译结果 5.Python翻译服务对接到.NET Core 前言 ...

  3. 【愚公系列】2022年12月 .NET CORE工具案例-.NET Core使用QrCodeGenerator进行二维码生成

    文章目录 前言 一..NET Core使用QrCodeGenerator进行二维码生成 1.安装nuget程序包 2.二维码生成 2.1 基本生成 2.2 设置前景和背景颜色 2.3 生成 PNG 格 ...

  4. 【愚公系列】2022年12月 .NET CORE工具案例-使用MailKit使用IMAP协议进行邮件读取

    文章目录 前言 1.MailKit简介 2.MailKit功能 3.IMAP协议 一.使用MailKit进行邮件处理 1.安装MailKit程序包 2.读取操作文件代码 前言 1.MailKit简介 ...

  5. 【愚公系列】2022年12月 .NET CORE工具案例-PLG轻量级日志可视化服务

    文章目录 前言 1.Serilog简介 2.Grafana简介 3.Loki是什么 一.Serilog对接Grafana轻量级日志可视化服务 1.Grafana部署 2.Loki部署 3.promta ...

  6. 【愚公系列】2022年11月 .NET CORE工具案例-.NET 7中的WebTransport通信

    文章目录 前言 1.技术背景 2.QUIC相关概念 3.HTTP/3.0 一.WebTransport 1.WebTransport概念 2.WebTransport在js中的使用 3.WebTran ...

  7. 【愚公系列】2023年02月 .NET CORE工具案例-Lunar日历转换

    文章目录 前言 一.Lunar日历转换 1.安装包 2.相关代码 3.运行 二.用途 1.年历 2.月历 3.佛历 4.道历 5.上班摸鱼 前言 真正的日历产生,大约在一千一百多年前的唐顺宗永贞元年, ...

  8. 【愚公系列】2023年02月 .NET CORE工具案例-办公文档神器Toxy的使用

    文章目录 前言 一.办公文档神器Toxy的使用 1.安装对应的包 2.Word文档操作 2.1 普通文档解析 2.2 表格文档解析 3.Excel文件操作 4.PDF文档操作 5.图片文件操作 总结 ...

  9. 【愚公系列】2023年01月 .NET CORE工具案例-基于SqlSugar的多库多表融合查询

    文章目录 前言 一.基于SqlSugar的多库多表融合查询 1.安装包 2.订单表 3.添加连接 3.1 初始化添加 3.2 动态添加 4.查询 4.1 子表对主表(一对一)查询 4.2 主表对子表( ...

最新文章

  1. 分享我如何在7年时间里成长为阿里Java架构师(附学习路线图)
  2. 一个苏州IT人的5年挨踢经历-------面试篇(之三)
  3. java.IO字节流和字符流详解
  4. 中国SaaS死或生之五:目标、方法、钱,一个都不能少
  5. BetterFE 前端技术周刊 - 2019/04/15
  6. 关于机器学习你必须要了解的事情
  7. k1658停运到什么时候_最近网传的春节快递停运时间表,是假的!
  8. Effective Java第二版 读后感
  9. gan怎么输入一维数据_GAN评价指标最全汇总
  10. Javascript url 小逻辑
  11. 个人管理 - 我是这样偷着做架构的
  12. Flutter BuildOwner之dirty elements简析
  13. Java架构师和大数据架构师的区别是什么?哪个更有发展前景?
  14. jmeter分布式部署
  15. 分区助手扩大c盘后自动修复_C盘空间不足怎么办?分区助手教你如何扩大C盘
  16. js清除cookies
  17. android手机怎么投屏到电视盒子,手机钉钉怎么投屏到电视上
  18. Kafka09:【案例】Flume集成Kafka
  19. 亚马逊评价计算器 分析评价利器
  20. 两种图像拼接(无重叠相邻图有重叠相邻图)以及matlab实现(边线查找法)

热门文章

  1. static_cast和reinterpret_cast
  2. 世上最经典的爱情诗句 1
  3. 【Oracle统计】按照月份周和自然周统计
  4. 浏览器 看不到请求了
  5. GitHub开源项目学习 电商系统Mall (五) mall整合SpringSecurity和JWT实现认证和授权(二)
  6. JAVA1V1人机对战游戏
  7. 在云服务器上搭建自己的mc服务器
  8. 蓝桥杯算法训练VIP-旅行家的预算
  9. 美国(大平洋时区)夏令时
  10. pytest测试实战笔记一:PytestUnknownMarkWarning- is this a typo? You can register custom marks to avoid this