前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2022年12月 .NET CORE工具案例-性能监控工具WatchDog的使用

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

作者头像
愚公搬代码
发布2022-12-07 13:17:26
4050
发布2022-12-07 13:17:26
举报
文章被收录于专栏:历史专栏

文章目录


前言

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

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

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

WatchDog功能特性主要有:

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

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

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

1.安装包

通过 .NET CLI 安装 WatchDog.NET

代码语言:javascript
复制
dotnet addpackage WatchDog.NET --version 1.3.2

或者使用包管理器安装

代码语言:javascript
复制
Install-Package WatchDog.NET --version 1.3.2
在这里插入图片描述
在这里插入图片描述

2.添加引用

默认使用本地文件数据库

代码语言:javascript
复制
builder.Services.AddWatchDogServices();

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

代码语言:javascript
复制
services.AddWatchDogServices(opt =>
{
	opt.SetExternalDbConnString = "DbConnString";
	opt.SqlDriverOption = WatchDogSqlDriverEnum.PostgreSql;
});
在这里插入图片描述
在这里插入图片描述

3.配置 WatchDog 中间件

代码语言:javascript
复制
//配置中间件
app.UseWatchDog(opt =>
{
    opt.WatchPageUsername = "admin";
    opt.WatchPagePassword = "123456";
});
在这里插入图片描述
在这里插入图片描述

4.运行程序

4.1 登录页面

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

在这里插入图片描述
在这里插入图片描述

4.2 查看 Http 请求和响应

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3 查看异常信息

在这里插入图片描述
在这里插入图片描述

4.4 记录日志信息

代码语言:javascript
复制
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-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 一、性能监控工具WatchDog的使用
    • 1.安装包
      • 2.添加引用
        • 3.配置 WatchDog 中间件
          • 4.运行程序
            • 4.1 登录页面
            • 4.2 查看 Http 请求和响应
            • 4.3 查看异常信息
            • 4.4 记录日志信息
        相关产品与服务
        消息队列 TDMQ
        消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档