【愚公系列】2022年12月 .NET CORE工具案例-性能监控工具WatchDog的使用
文章目录
- 前言
- 一、性能监控工具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的使用相关推荐
- 【愚公系列】2022年12月 .NET CORE工具案例-滑块验证码和拼图验证功能实现
文章目录 前言 1.滑块验证码的定义 2.滑块验证码的安全性分析 3.滑块验证码的第三方服务 一.滑动验证码和拼图验证功能实现 1.逻辑分析 2.新建项目 3.配置缓存 4.配置跨域 5.后端源码 6 ...
- 【愚公系列】2022年12月 .NET CORE工具案例-多语言离线翻译系统
文章目录 前言 1.在线翻译 2.离线翻译 一.多语言离线翻译系统 1.开发环境 2.准备离线翻译包 3.准备python代码 4.调试翻译结果 5.Python翻译服务对接到.NET Core 前言 ...
- 【愚公系列】2022年12月 .NET CORE工具案例-.NET Core使用QrCodeGenerator进行二维码生成
文章目录 前言 一..NET Core使用QrCodeGenerator进行二维码生成 1.安装nuget程序包 2.二维码生成 2.1 基本生成 2.2 设置前景和背景颜色 2.3 生成 PNG 格 ...
- 【愚公系列】2022年12月 .NET CORE工具案例-使用MailKit使用IMAP协议进行邮件读取
文章目录 前言 1.MailKit简介 2.MailKit功能 3.IMAP协议 一.使用MailKit进行邮件处理 1.安装MailKit程序包 2.读取操作文件代码 前言 1.MailKit简介 ...
- 【愚公系列】2022年12月 .NET CORE工具案例-PLG轻量级日志可视化服务
文章目录 前言 1.Serilog简介 2.Grafana简介 3.Loki是什么 一.Serilog对接Grafana轻量级日志可视化服务 1.Grafana部署 2.Loki部署 3.promta ...
- 【愚公系列】2022年11月 .NET CORE工具案例-.NET 7中的WebTransport通信
文章目录 前言 1.技术背景 2.QUIC相关概念 3.HTTP/3.0 一.WebTransport 1.WebTransport概念 2.WebTransport在js中的使用 3.WebTran ...
- 【愚公系列】2023年02月 .NET CORE工具案例-Lunar日历转换
文章目录 前言 一.Lunar日历转换 1.安装包 2.相关代码 3.运行 二.用途 1.年历 2.月历 3.佛历 4.道历 5.上班摸鱼 前言 真正的日历产生,大约在一千一百多年前的唐顺宗永贞元年, ...
- 【愚公系列】2023年02月 .NET CORE工具案例-办公文档神器Toxy的使用
文章目录 前言 一.办公文档神器Toxy的使用 1.安装对应的包 2.Word文档操作 2.1 普通文档解析 2.2 表格文档解析 3.Excel文件操作 4.PDF文档操作 5.图片文件操作 总结 ...
- 【愚公系列】2023年01月 .NET CORE工具案例-基于SqlSugar的多库多表融合查询
文章目录 前言 一.基于SqlSugar的多库多表融合查询 1.安装包 2.订单表 3.添加连接 3.1 初始化添加 3.2 动态添加 4.查询 4.1 子表对主表(一对一)查询 4.2 主表对子表( ...
最新文章
- 分享我如何在7年时间里成长为阿里Java架构师(附学习路线图)
- 一个苏州IT人的5年挨踢经历-------面试篇(之三)
- java.IO字节流和字符流详解
- 中国SaaS死或生之五:目标、方法、钱,一个都不能少
- BetterFE 前端技术周刊 - 2019/04/15
- 关于机器学习你必须要了解的事情
- k1658停运到什么时候_最近网传的春节快递停运时间表,是假的!
- Effective Java第二版 读后感
- gan怎么输入一维数据_GAN评价指标最全汇总
- Javascript url 小逻辑
- 个人管理 - 我是这样偷着做架构的
- Flutter BuildOwner之dirty elements简析
- Java架构师和大数据架构师的区别是什么?哪个更有发展前景?
- jmeter分布式部署
- 分区助手扩大c盘后自动修复_C盘空间不足怎么办?分区助手教你如何扩大C盘
- js清除cookies
- android手机怎么投屏到电视盒子,手机钉钉怎么投屏到电视上
- Kafka09:【案例】Flume集成Kafka
- 亚马逊评价计算器 分析评价利器
- 两种图像拼接(无重叠相邻图有重叠相邻图)以及matlab实现(边线查找法)
热门文章
- static_cast和reinterpret_cast
- 世上最经典的爱情诗句 1
- 【Oracle统计】按照月份周和自然周统计
- 浏览器 看不到请求了
- GitHub开源项目学习 电商系统Mall (五) mall整合SpringSecurity和JWT实现认证和授权(二)
- JAVA1V1人机对战游戏
- 在云服务器上搭建自己的mc服务器
- 蓝桥杯算法训练VIP-旅行家的预算
- 美国(大平洋时区)夏令时
- pytest测试实战笔记一:PytestUnknownMarkWarning- is this a typo? You can register custom marks to avoid this