首页 > 其他分享 >#yyds干货盘点#【愚公系列】2023年04月 .NET CORE工具案例-性能监控工具WatchDog的使用

#yyds干货盘点#【愚公系列】2023年04月 .NET CORE工具案例-性能监控工具WatchDog的使用

时间:2023-04-05 10:31:30浏览次数:52  
标签:opt yyds logger 04 记录 NET WatchDog 工具 日志

前言

所谓日志(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();
        }

    }
}

在这里插入图片描述

标签:opt,yyds,logger,04,记录,NET,WatchDog,工具,日志
From: https://blog.51cto.com/u_15437432/6170265

相关文章

  • 【230405-2】过定点M(4,2),任意作两条互相垂直的直线l1和l2,分别交xy轴于AB两点,求线段中
    ......
  • 【230405-3】三角形ABC中,AB=2,AC=根号2倍BC。求三角形ABC的最大值?
    ......
  • Android 构建工具--AAPT2源码解析(一)
    一、什么是AAPT2在Android开发过程中,我们通过Gradle命令,启动一个构建任务,最终会生成构建产物“APK”文件。常规APK的构建流程如下:(引用自Google官方文档)编译所有的资源文件,生成资源表和R文件;编译Java文件并把class文件打包为dex文件;打包资源和dex文件,生成未签名的APK文件;签名APK生成......
  • ChatGPT推荐最常用的自动化测试、性能、安全测试工具!
    ChatGPT是一种当前被广泛关注的人工智能技术,它具备生成自然语言的能力,能够完成一些简单的文本生成、对话交互等任务。ChatGPT算法的出现,打破了以前自然语言处理的瓶颈,使得机器具备了更加贴合人类想法的表达能力,也让人类在处理海量自然语言数据面前得到了很大的帮助。而ChatGPT也......
  • 【MySQL】MySQL基础04 — SQL学习 — DQL — 排序查询
    SQL学习—DQL—条件查询3.排序查询/*语法: select查询字段 from表名 【where筛选条件】 orderby排序字段【asc|desc】 特点: 1.asc代表升序,desc代表降序 如果不写,默认升序 2.排序字段除了可以是表达式外,还可以是别名 但WHERE后面只能是表达式!! 3.排序......
  • 2023-04-04 哈密尔顿问题和路径压缩
    哈密尔顿问题和路径压缩1哈密尔顿回路和TSP路径与回路哈密尔顿问题偏计算机,欧拉问题偏数学,所以本章我们主要讲哈密尔顿回路和哈密尔顿路径哈密尔顿回路哈密尔顿路径欧拉回路欧拉路径哈密尔顿回路定义从一个点出发,沿着边走,经过每个顶点恰好一次,之后再回到出发点,过程......
  • java学习日记20230406-StringBuilder,StringBuffer,String比较
    StringBuffer,StringBuilder,String比较: StringBuilder和StringBuffer非常类似,均代表可变的字符序列,而且方法相同;String:不可变字符序列,效率低,但是复用率高;StringBuffer:可变字符序列,效率较高,线程安全;StringBuider:可变字符序列,效率极高,线程不安全  String使用注意说明: ......
  • java学习日记20230406-StringBuilder类
    StringBuilder类一个可变的字符序列,此类提供一个与StringBuffer兼容的Api,但不保证同步。该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候。如果可能,建议优先采用该类,因为在大多数实现中,他比StringBuffer要快----StringBuilder不是线程安全的在S......
  • C/C++物业费管理系统[2023-04-04]
    C/C++物业费管理系统[2023-04-04]程序设计题:物业费管理系统出题人:俞琼面向专业:软件工程难度等级:41问题描述为维护小区正常的运营管理,居民应按时缴纳小区管理费,请设计一个物业费管理系统,对小区的住户进行收费管理。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基......
  • java学习日记20230405-StringBuffer类
    StringBuffer类java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删很多方法与String相同,但StringBuffer是可变长度的StringBuffer是一个容器StringBuffer是final类实现了Serializable接口,可以保存到文件或网络传输继承了抽象类AbstractStringBuiderAbstra......