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

网站后台程序怎么做网站定制公司地址

网站后台程序怎么做,网站定制公司地址,网站模板排名,ppt模板简洁大方此示例的完整详细信息#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/842558/

相关文章:

  • 电子商务网站建设与管理读后感上海市基础工程公司
  • 织梦免费企业网站做网站时,404网页如何指向
  • 摄影工作室网站源码百度为什么会k网站
  • 哪个网站有淘宝做图的素材网站分享做描点链接
  • 做哪个网站零售最好网站空间在哪里
  • 荆州网站建设多少钱南阳做网站推广
  • 网站代理打开个人网站设计源码
  • 做php网站的话要学什么语言wordpress搜索不到
  • 金华官方网站建设网络营销策划模板
  • 网站开发到上线在线生成小程序
  • 动易网站设计方案郑州营销网站建设
  • 怎么上网站做简易注销的步骤郑州大学现代远程教育《网页设计与网站建设》课程考核要求
  • 新乡网站建设新乡长沙本地论坛有哪些
  • 潍坊中企动力做的网站怎么样wordpress接入微博
  • 网站开发者所有权归属网站项目建设的必要性
  • 菜鸟网站编程广州网站设计权威乐云践新
  • 网站做接口到app 价格大地资源免费视频观看
  • 怎么给钓鱼网站做防红网站建设相关的
  • 教育培训的网站建设湖南网站建设小公司
  • 福建南平网站建设创意交易平台网
  • 做直播网站要哪些技术内容营销理论
  • 价格划算的网站开发怎么找有赞做网站
  • 做网站店铺图片用什么软件网络营销方案格式
  • 做外贸要自己建网站吗有效的网络营销方式
  • 精通网站开发书籍做网站获取手机号码
  • 论坛做视频网站有哪些济南新站seo外包
  • 哪类型网站容易做冷水滩做微网站
  • 搭建企业网站流程保定徐水网站建设
  • 建设单位到江川区住房和城乡建设局网站伦敦 wordpress 设计
  • 响应式网站的服务麦德龙网站建设目标