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

唐山企业网站建设搭建论坛需要多少钱

唐山企业网站建设,搭建论坛需要多少钱,dede阿里百秀网站源码,湛江app开发公司此示例的完整详细信息#xff1a;https://download.csdn.net/download/hefeng_aspnet/89998498 Serilog 是一个日志库#xff0c;它提供对文件、控制台和其他几个地方的记录。它易于配置#xff0c;并且具有干净且易于使用的界面。 Serilog具有无与伦比的输出目的地选择https://download.csdn.net/download/hefeng_aspnet/89998498   Serilog  是一个日志库它提供对文件、控制台和其他几个地方的记录。它易于配置并且具有干净且易于使用的界面。 Serilog具有无与伦比的输出目的地选择称为Sinks以及丰富、路由、过滤和格式化结构化日志事件的能力使其在任何应用程序中都不可或缺。 在本文中我们将学习如何在 .NET 6.0 中配置和使用 Serilog遵循保持代码整洁和高性能的最佳实践。 先决条件 Visual Studio 2022 (.NET 6.0) Nuget包Serilog.AspNetCoreSerilog.Enrichers.CorrelationIdSerilog.Exceptions和Serilog.Sinks.Async 应用程序编程接口 在API program.cs类 中按照以下代码进行配置 program.cs: using Sample.Serilog.WebApi.Core.Extensions; using Sample.Serilog.WebApi.Core.Middlewares; using Serilog; try {     var builder WebApplication.CreateBuilder(args);     SerilogExtension.AddSerilogApi(builder.Configuration);     builder.Host.UseSerilog(Log.Logger); builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer();     builder.Services.AddSwaggerGen(); var app builder.Build(); app.UseMiddlewareErrorHandlingMiddleware();     app.UseMiddlewareRequestSerilLogMiddleware(); if (app.Environment.IsDevelopment())     {         app.UseSwagger();         app.UseSwaggerUI();     } app.MapControllers(); app.Run(); } catch (Exception ex) {     Log.Fatal(ex, Host terminated unexpectedly); } finally {     Log.Information(Server Shutting down...);     Log.CloseAndFlush(); } 最好在应用程序开始时配置Serilog并包含错误处理 try和catch以收集和显示应用程序可能生成的任何异常。 builder.Host.UseSerilog(Log.Logger)代码负责将Serilog注册为应用程序的默认提供程序因此也可以使用ILogger接口来注册应用程序的日志。 AddSerilogApi ()扩展包含以下代码 SerilogExtension.cs: namespace Sample.Serilog.WebApi.Core.Extensions; public static class SerilogExtension {     public static void AddSerilogApi(IConfiguration configuration)     {         Log.Logger new LoggerConfiguration()             .MinimumLevel.Override(Microsoft.AspNetCore, LogEventLevel.Information)             .Enrich.FromLogContext()             .Enrich.WithExceptionDetails()             .Enrich.WithCorrelationId()             .Enrich.WithProperty(ApplicationName, $API Serilog - {Environment.GetEnvironmentVariable(DOTNET_ENVIRONMENT)})             .Filter.ByExcluding(Matching.FromSource(Microsoft.AspNetCore.StaticFiles))             .Filter.ByExcluding(z z.MessageTemplate.Text.Contains(Business error))             .WriteTo.Async(wt wt.Console(outputTemplate: [{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj} {Properties:j}{NewLine}{Exception}))             .CreateLogger();     } } 其中我们有以下描述 1、MaximumLevel.Override配置给定命名空间的最小日志记录。 2、Enrich.FromLogContext Serilog主要工作上下文。几乎在所有情况下您都需要记录此代码片段才能获得日志记录提供程序的好处。 3、Enrich.WithExceptionDetails发生错误时收集并记录所有异常详细信息。 4、Enrich.WithCorrelationId关联所有日志记录方便追踪。 5、Enrich.WithProperty向日志添加新的自定义属性。 6、Filter.ByExclusion根据配置的Matching排除收集到的日志。 7、WriteTo.Async异步执行所有操作后台。这是Serilog最重要的设置之一。 在app.UseMiddlewareErrorHandlingMiddleware()中我们有以下代码 提到的该中间件用作全局错误处理。 app.UseMiddlewareRequestSerilLogMiddleware()部分包含以下代码 ErrorHandlingMiddleware.cs namespace Sample.Serilog.WebApi.Core.Middlewares; public class ErrorHandlingMiddleware {     private readonly RequestDelegate next; public ErrorHandlingMiddleware(RequestDelegate next)     {         this.next next;     } public async Task Invoke(HttpContext context)     {         try         {             await next(context);         }         catch (Exception ex)         {             await HandleExceptionAsync(context, ex);         }     } private static Task HandleExceptionAsync(HttpContext context, Exception exception)     {         Log.Error(exception, Error); var code HttpStatusCode.InternalServerError; var result System.Text.Json.JsonSerializer.Serialize(new { error exception?.Message }); context.Response.ContentType application/json;         context.Response.StatusCode (int)code;         return context.Response.WriteAsync(result);     } } 正如这篇文章中提到的该中间件用作全局错误处理。 app.UseMiddlewareRequestSerilLogMiddleware()部分包含以下代码 RequestSerilLogMiddleware.cs namespace Sample.Serilog.WebApi.Core.Middlewares; public class RequestSerilLogMiddleware {     private readonly RequestDelegate _next; public RequestSerilLogMiddleware(RequestDelegate next)     {         _next next;     } public Task Invoke(HttpContext context)     {         using (LogContext.PushProperty(UserName, context?.User?.Identity?.Name ?? anônimo))         {             return _next.Invoke(context);         }     } } 该中间件用于收集附加信息以丰富日志在这种情况下我们仅收集来自认可用户的信息。 最后使用以下代码配置控制器 ClientController.cs namespace Sample.Serilog.WebApi.Controllers; [ApiController] [Route([controller])] public class ClientController : ControllerBase {     private readonly ILoggerClientController _logger; public ClientController(ILoggerClientController logger)     {         _logger logger;     } [HttpGet]     public async TaskIActionResult Get()     {         _logger.LogInformation(Endpoint Get successful. (from ILogger));         Log.Information(Endpoint Get successful. (from Serilog)); return Ok();     } } 在此示例中我们以两种方式记录日志一种使用ILogger 另一种使用Serilog的名为Log的静态类。 测试 要进行测试请  在 Swagger 中运行GET /client端点 并检查日志收集的结果包括控制器中配置的两种形式如下图所示 Serilog是所有 .NET 应用程序中一个出色且不可或缺的组件使用它您可以捕获所有应用程序日志以便将来进行遥测分析以做出决策。使用WriteTo.Async配置所有内容都会异步记录这确保Serilog不会影响应用程序的性能。  此示例的完整详细信息https://download.csdn.net/download/hefeng_aspnet/89998498  如果您喜欢此文章请收藏、点赞、评论谢谢祝您快乐每一天。
http://www.w-s-a.com/news/553590/

相关文章:

  • 你是网站设计有限公司的项目经理网站推广的重要性
  • 网站定制开发怎么写泸州设计公司有哪些
  • 上海网站建设zj kt迅速编程做网站
  • 郑州服装 网站建设网站栏目合理性
  • 平面设计在线网站最新汽油价格调整最新消息
  • 刷单网站建设wordpress缩略图 裁剪
  • 视差 网站泰州公司做网站
  • 广州网站优化系统怎么做淘客网站
  • 类似凡科互动的网站wordpress网站下载
  • 临沂网站制作公司安卓app开发实例教程
  • 泰州做网站 泰公网络科技公司网站升级中html
  • 如何做授权网站网站设计心得
  • 网站排名快速上升wordpress自动标签页
  • 做的好的手机网站有哪些万网域名交易
  • 网站怎么做漂亮点做陶瓷的公司网站
  • 软件开发设计制作网站下载自己怎么做视频收费网站
  • 江苏省建设安全协会网站天津网站建设哪家公司好
  • 资源类网站怎么做的网站上线准备工作
  • 长沙专业网站建设怎么做企业建站公司服务
  • 肇庆市有限公司网站建设手机直接看的网站有哪些
  • 织梦修改网站后备份英语作文模板高中
  • 个人网站域名用什么好上海公司拍沪牌需要什么条件
  • 网站建设 保密做网站赚钱交税
  • 食品建设网站前的市场分析进出口网站贸易平台有哪些
  • php商城网站建设个人网站用什么服务器
  • 如何做好品牌网站建设方案网站开发的学习
  • 网站开发 管理方案wordpress怎么搭建微博
  • 有哪些ui的设计网站网上商城网站建设设计方案
  • iis中怎样配置网站绑定运城可以做网站的公司
  • 品牌网站建设开发价格dedecms电影网站模板