将JetBrains用于学习

提供将JetBrains用于学习的方法。

阅读更多
在Serilog日志中排除健康检查日志

译者: Akini Xu

原文: Excluding health check endpoints from Serilog request logging

作者: Andrew Lock

此文是在ASP.NET Core 3.0中使用Serilog第4篇:

  1. 使用Serilog减少日志的详细程度
  2. 使用Serilog记录路由的端点
  3. 使用Serilog记录MVC属性
  4. 在Serilog日志中排除健康检查日志

在本系列的前几篇文章中,我介绍了如何配置Serilog的RequestLogging中间件,向Serilog的请求日志中添加其它额外信息,例如请求主机名或所选的端点名称。 我还介绍了如何使用过滤器将MVC或RazorPage特定的属性添加到日志中。

在这篇文章中,我将介绍如何不记录指定的请求的日志。

阅读更多
ASP.NET Core in Action - 过滤器

译者: Akini Xu

原文: ASP.NET Core in Action - Filters

作者: Andrew Lock

了解过滤器以及何时使用它们

MVC过滤器管道的概念相对简单的,相当于在MVC的请求过程中,提供了很多“钩子”,如图1所示。当用户登录成功后,才允许新建或编辑商品,否则,重定向到登录页面。

如果没有过滤器,则需要在每个特定Action方法上添加很多相同的代码,以检查用户是否登录。即使采用了这种方式,当用户未登录时访问新建商品ActionMvcMiddleware中间件仍会执行模型绑定和验证的相关逻辑。

借助过滤器,可以使用MVC请求中那些的“钩子”,让所有的请求都可以运行共用的代码。 例如下面这些场景:

  • 确保用户已登录后,再执行对应的Action方法、模型绑定、模型验证
  • 自定义Action的输出格式
  • Action执行前,处理模型验证失败的情况
  • Action中捕获异常,并以特殊方式处理它们
阅读更多
使用Serilog记录MVC属性

译者: Akini Xu

原文: Logging MVC properties with Serilog.AspNetCore

作者: Andrew Lock

此文是在ASP.NET Core 3.0中使用Serilog第3篇:

  1. 使用Serilog减少日志的详细程度
  2. 使用Serilog记录路由的端点
  3. 使用Serilog记录MVC属性
  4. 在Serilog日志中排除健康检查日志

在本系列的上一篇中,我介绍了如何配置Serilog的RequestLogging中间件,来向Serilog的摘要日志中添加额外属性。 这些属性可以从HttpContext中获得,直接被中间件使用。

有一些属性(MVC特有的功能,例如Action名称,RazorPages处理程序名称或ModelValidationState等)仅在MVC上下文中可用,因此Serilog的中间件不能直接访问。

在本文中,我将介绍如何通过创建Action/Page的过滤器来记录这些属性,以方便中间件生成日志时使用。

Serilog的作者Nicholas Blumhardt在一篇文章中解决了这个问题。 他在示例中创建了一个attribute,并在actions/controllers中使用。 本文并没有采用这种方式,我想实现一种更通用的解决方案。 另外还可以查看他有关ASP.NET Core 3.0的Serilog相关文章

阅读更多
使用Serilog记录路由的端点

译者: Akini Xu

原文: Logging the selected Endpoint Name with Serilog

作者: Andrew Lock

此文是在ASP.NET Core 3.0中使用Serilog第2篇:

  1. 使用Serilog减少日志的详细程度
  2. 使用Serilog记录路由的端点
  3. 使用Serilog记录MVC属性
  4. 在Serilog日志中排除健康检查日志

在本系列的上一篇中,我介绍了如何使用Serilog的RequestLogging中间件,对每次请求只生成“摘要”日志,替换掉由ASP.NET Core日志组件输出的10多行的日志。

在本文中,我将介绍如何向Serilog的摘要日志中添加其它额外的元数据,例如,请求方的主机名、响应的内容类型、ASP.NET Core 3.0的端点路由中间件中调用的端点。

阅读更多
使用Serilog减少日志的详细程度阅读更多
系列-在ASP.NET Core 3.0中使用Serilog

译者: Akini Xu

原文: Series: Using Serilog.AspNetCore in ASP.NET Core 3.0

作者: Andrew Lock

ASP.NET Core框架中是包含日志记录基础组件的。 您可以方便地通过使用框架的日志组件,获得所有日志。 只是有时候日志数量过多。

在这个系列中,我将介绍如何使用Serilog记录ASP.NET Core的请求日志。 在第一篇文章中,会介绍如何将Serilog RequestLoggingMiddleware中间件添加到您的应用程序管道中,以及带来的好处。 在后续文章中,我将进一步介绍如何定制中间件来向日志中添加其他额外信息。

Serilog的作者Nicholas Blumhardt,写了一篇博客“如何在ASP.NET Core 3.0中使用Serilog”。强烈建议您阅读。 在他的文章中找到我在本系列文章中谈论的大部分内容。

本系列文章列表:

  1. 使用Serilog减少日志的详细程度
  2. 使用Serilog记录路由的端点
  3. 使用Serilog记录MVC属性
  4. 在Serilog日志中排除健康检查日志