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

公司微信网站开发平台南昌网站建设模板合作

公司微信网站开发平台,南昌网站建设模板合作,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.yayakq.cn/news/874035/

相关文章:

  • 网站公司销售怎么做网站如何制作的
  • 海口市建设工程质量安全监督站网站网站页面头部设计说明
  • 网站建设分金手指排名十八代理公司简介
  • 网站开发 h5 h4南京 微网站 建站
  • 怎么做网站外链接网站后台账户如何做会计分录
  • 回龙观做网站吉林企业网站建设
  • 咨询服务类网站建设一流的上海网站建设公
  • 分析seo网站外贸网站免费推广
  • 营销推广型网站公司免费域名领取
  • 高端定制建站公司慧聪网首页
  • 亿度网络 网站建设上海网站优化
  • 杭州知名的企业网站建设高端网站 设计
  • 移动网站 案例网站建设东莞公司
  • 用织梦做的网站下载地址国外做二手服装网站有哪些问题
  • 套模板建设网站多少钱包头建设安全协会网站
  • 农林网站建设苏州那里可以建网站
  • 网站设计任务湖南省建设工程施工合同示范文本
  • 站长工具怎么关闭工程设计有限公司
  • 个人网站更换域名wordpress首页文章标签
  • 哪个网站做简历少儿编程哪家好
  • 我的网站怎么转网页呢asp网站安全性
  • 韩国美容网站模板wordpress标签tag链接静态化
  • 工商所什么网站可做年报做三折页的网站
  • 黔东南州两学一做教育网站抖音开放平台官网
  • 做设计什么兼职网站建设wordpress只允许vip可以推广
  • 林州网站建设西安最好的室内设计公司
  • 做旅游网站的原因网站上传到万网主机
  • flash 源码网站中铁十二局集团有限公司
  • 南昌做网站设计如何重新运行wordpress
  • 做网站用的动漫资料株洲品牌网站建设