当前位置: 首页 > news >正文

武汉官方网站设计公司seo咨询师

武汉官方网站设计公司,seo咨询师,做720效果的还有哪个网站,wordpress登录主题介绍 日志记录是任何 Web 应用程序的关键方面。它有助于调试、性能监控和了解用户交互。在 ASP.NET C# 中,集成 Serilog 作为记录请求和响应(包括传入和传出的数据)的中间件可以显著提高 Web API 的可观察性和故障排除能力。 在过去的几周里&…

介绍

        日志记录是任何 Web 应用程序的关键方面。它有助于调试、性能监控和了解用户交互。在 ASP.NET C# 中,集成 Serilog 作为记录请求和响应(包括传入和传出的数据)的中间件可以显著提高 Web API 的可观察性和故障排除能力。

        在过去的几周里,我一直在编写一些使用 Azure 表存储而不是 SQL 或 Postgres 数据库的不同 Web API,因为表存储非常便宜,而数据库很昂贵,而且我想尝试使用表存储来看看它在实际应用程序中有多么有用。

        在这篇博文中,我将介绍使用 Serilog 在 ASP.NET C# Web API 中创建中间件类以进行全面日志记录的步骤。

设置 Serilog

        首先,您需要将 Serilog 集成到您的 ASP.NET C# 项目中。Serilog 是一个功能强大且易于使用的日志库。

        安装 Serilog 包:通过 NuGet 包管理器,安装Serilog、、Serilog.AspNetCore和Serilog.Sinks.File(或您选择的任何其他接收器)。
配置 Serilog:在您的Program.cs或 中Startup.cs,将 Serilog 配置为日志提供程序:

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Debug()
    .WriteTo.Console()
    .WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day)
    .CreateLogger();

创建中间件

        ASP.NET Core 中的中间件是组装到应用程序管道中以处理请求和响应的软件。

        创建一个新的中间件类SerilogMiddleware.cs:在您的项目中创建一个新类。

        实现中间件逻辑:此类将拦截所有 HTTP 请求和响应,使我们能够记录必要的信息。

public class SerilogMiddleware
{
    private readonly RequestDelegate _next;

    public SerilogMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task Invoke(HttpContext context)
    {
        // Log the Request
        Log.Information($"Request {context.Request?.Method}: {context.Request?.Path.Value}");

        // Read and log the request body data
        string requestBodyPayload = await ReadRequestBody(context);
        Log.Information($"Request Payload: {requestBodyPayload}");

        // Copy a pointer to the original response body stream
        var originalBodyStream = context.Response.Body;

        using (var responseBody = new MemoryStream())
        {
            // Point the response body to a memory stream
            context.Response.Body = responseBody;

            await _next(context);

            // Read and log the response body data
            context.Response.Body.Seek(0, SeekOrigin.Begin);
            string responseBodyPayload = await new StreamReader(context.Response.Body).ReadToEndAsync();
            context.Response.Body.Seek(0, SeekOrigin.Begin);

            Log.Information($"Response {context.Response?.StatusCode}: {responseBodyPayload}");

            // Copy the contents of the new memory stream (which contains the response) to the original stream, which is then returned to the client.
            await responseBody.CopyToAsync(originalBodyStream);
        }
    }

    private async Task<string> ReadRequestBody(HttpContext context)
    {
        context.Request.EnableBuffering();

        var buffer = new byte[Convert.ToInt32(context.Request.ContentLength)];
        await context.Request.Body.ReadAsync(buffer, 0, buffer.Length);
        string bodyAsText = Encoding.UTF8.GetString(buffer);
        context.Request.Body.Seek(0, SeekOrigin.Begin);

        return bodyAsText;
    }
}

注册中间件

在该Startup.cs文件中,在方法中注册中间件Configure。 

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // ... other configurations ...

    // Register the Serilog middleware
    app.UseMiddleware<SerilogMiddleware>();

    // ... other configurations ...
}

结论

        您已通过在 ASP.NET C# Web API 中实现 Serilog 中间件建立了强大的日志记录机制。这将记录所有请求和响应及其有效负载,让您详细了解 API 的运行情况。此设置对于诊断问题、了解用户行为和确保应用程序平稳运行非常有用。

        请记住,虽然记录必不可少,但谨慎记录内容也至关重要,尤其是在处理敏感数据时。始终遵守有关数据处理和隐私的最佳实践和法律要求。

您可以从这里下载 Serilog:https://serilog.net

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

http://www.dinnco.com/news/85854.html

相关文章:

  • 微网站 注册最近有新病毒出现吗
  • 万网x3主机l系统放两个网站网站搭建平台
  • 广西百度推广外贸网站谷歌seo
  • 网站模板源码平台app开发公司排行榜
  • 广告设计软件用哪个深圳优化seo排名
  • 坑梓网站建设包括哪些网站排名优化公司
  • 淘宝做店招的网站google浏览器官方下载
  • 网站建设与品牌策划方案报价seo分析是什么意思
  • wordpress双击图片放大seo属于运营还是技术
  • 凯新认证北京有限公司seo排名教程
  • 制作游戏网站公司网站seo优化服务商
  • 中央批评了上海精准防控沧州网站seo
  • 做网站首页轮播图代码温州seo外包公司
  • 宁波手机网站制作设计网站都有哪些
  • 济南网站建设优化域名状态查询工具
  • 北京B2B2C多用户商城网站建设百度打广告多少钱
  • 微网站的优点网站seo的内容是什么
  • 怎么与其他网站做友情链接seo关键词优化排名推广
  • 怎么编写一个网站谷歌浏览器手机版免费官方下载
  • 推广普通话活动网站移动端优化工具
  • 做火情监控网站需要用什么系统培训机构有哪些
  • 个人网站的搭建步骤网络营销概念
  • 网站建设费用一年多少钱百度推广后台
  • 苏州知名高端网站建设公司微信营销系统
  • 注册logo去哪里注册南宁百度seo
  • 做3d图的网站有哪些qq群推广平台
  • 柯桥区交通投资建设集团网站服装店营销策划方案
  • 宁波网站建设优化培训班招生方案有哪些
  • 长春网站建设于健广州百度推广电话
  • 路由器设置用来做网站空间吗微信推广软件有哪些