NLog如何获取RequestId?

2023-12-23

我想保存Activity.Current?.Id ?? HttpContext.TraceIdentifier进入数据库,因为这是用户在默认错误视图中看到的请求 ID。但如何呢?HttpContext在startup.cs中不可用,我尝试访问HttpContext布局渲染器没有成功。

HomeController 中的错误方法

public IActionResult Error()
{
    var model = new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier };

    return View(model);
}

我尝试过布局渲染器

namespace Copacking.Web.Utils
{
    [LayoutRenderer("requestid")]
    public class NLogRequestIdLayoutRenderer : LayoutRenderer
    {
        protected override void Append(StringBuilder builder, LogEventInfo logEvent)
        {
            builder.Append(Activity.Current?.Id ?? HttpContext.TraceIdentifier);
        }
    }
}

但我收到错误HttpContext,因为需要对象引用。

我该如何解决它?在Nlog配置文件 file ${aspnet-traceidentifier}正在工作但是${活动ID}变量为空:/


您可以执行以下操作https://www.nuget.org/packages/NLog.Web.AspNetCore https://www.nuget.org/packages/NLog.Web.AspNetCore:

layout="${activityid:whenEmpty=${mdlc:item=RequestId:whenEmpty=${aspnet-TraceIdentifier}}}"

请记住在 NLog.config 中包含以下内容:

<extensions>
  <add assembly="NLog.Web.AspNetCore"/>
</extensions>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NLog如何获取RequestId? 的相关文章

  • 实体框架7审计日志

    我正在将一个旧项目移植到 ASP NET 5 和 Entity Framework 7 我使用数据库优先方法 DNX 脚手架 来创建模型 旧项目基于Entity Framework 4 审计跟踪是通过重写实现的SaveChanges的方法D
  • IClaimsTransformation 未触发

    我尝试过实施一个IClaimsTransformation我在 ASP NET CORE 3 1 Web 应用程序中找到的类 public class ClaimsTransformer IClaimsTransformation publ
  • AWS DynamoDB 与 ASP .Net Core 3.1.0 Identity 2.2.0

    我必须将 Asp net core Identity 2 2 0 与 AWS DynamoDB 集成 我正在使用 net core 版本 3 1 我搜索了参考资料 但没有找到任何好的参考资料 请帮我 我得到了一份参考资料https gith
  • 控制器方法无法捕获来自重定向的对象路由

    我正在将数据从表单发送到我的Test方法和数据都在那里 如果发生了一些错误 那么我正在映射我的ModelInput to Model然后我执行重定向到MyView通过对象路由发送的数据 由于某种原因在MyView param input为空
  • 如何更改.net core的URL后缀?

    我怎样才能有以下路线 http localhost 4413 abc 以及以下路线 http localhost 4413 abc html 两者都返回相同的控制器方法 使用 NET Core MVC 听起来您想要两个后缀来达到相同的控制器
  • Net Core ILogger 值不能为空

    我收到记录器值不能为空 我正在尝试解决这个问题 也许是通过依赖注入来解决的 在单元测试和程序中的其他地方都会收到错误 我是否正确进行依赖注入 Expected
  • 不支持的媒体类型 ASP.NET Core Web API

    在前端 我使用 Angular 从表单收集一些数据并将其发送到我的服务器端控制器 如下图所示 我在控制器和服务上获取数据 scope newData 但是当它到达服务器时 我收到以下错误 不支持的媒体类型 并且我的 newData 为空 我
  • 如何在 ASP.NET Core-SPA 应用程序上禁用服务器端渲染?

    我正在使用 aspnetcore spa react redux 样板构建我的应用程序 可以在http blog stevensanderson com 2016 05 02 angular2 react knockout apps on
  • 如何使 EF-Core 使用 Guid 而不是字符串作为其 ID/主键

    当我查看 ASP NET 3 Identity 时 它使用string而不是一个Guid为唯一的主键 In my Entity Framework code first Users ApplicationUser类I继承Identity类
  • 在 ASP.NET Core 的中间件中注入服务

    我想根据 HTTP 标头值注入服务 所以我有 2 个类 DbDataProvider 和 InMemDataProvider 它们都是从 IDataProvider 实现的 每当进行 API 调用时 客户端都会传递一个标头 该标头确定是需要
  • 使用单元测试项目中定义的 Startup 类时.NET Core TestServer 返回 404

    我有一个基本的 net core api web 应用程序和一个使用 TestServer 发出 http 请求的单元测试项目 我有一个 TestStartup 类 它是 api 项目中 Startup 类的子类 如果 Startup 类位
  • TestContext.DataRow["MyColumnName"] 的替代品是什么

    在 Net Core 单元测试项目中使用 MSTest 我正在尝试使用 csv 数据源来提供测试方法的数据 以前 我会在 Net Framework 测试项目中使用如下所示的内容 DataSource Microsoft VisualStu
  • 在ConfigureServices中注入依赖

    在我的 ASP Net Core 应用程序中 我需要在以下位置注入一些依赖项 在我的例子中是一个存储库 ConfigureServices method 问题是该方法不允许使用多个参数来注入依赖项 该怎么办呢 这是我的代码 public v
  • ASP.NET Core MVC防伪

    尝试在核心 mvc 项目中打开防伪功能 但没有成功 做了什么 添加过滤器以自动检查每个 POST 请求的防伪令牌 services AddMvc o gt o Filters Add new AutoValidateAntiforgeryT
  • 如何使用Dot net core WEB API实现文件上传?

    我正在开发 ASP DOT NET core Web api 我需要发送多个附件 我尝试如下
  • 如何从 Main 中获取 IConfiguration?

    以下仅用于说明目的 我有一个secrets json包含以下内容 Message I still know what you did last summer 我需要使用以下播种器为数据库播种 public static class Seed
  • 如何使属性在 POST 请求上必需,但在 PUT 请求上不需要

    假设我有一个用户模型Email and Password用于身份验证目的的属性 如下所示 public class User public long Id get set Required public string FirstName g
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • IClaimsTransformation 未被调用

    我正在开发 ASP NET Core Web 应用程序 NET 5 0 这是一个 Intranet 应用程序 因此我使用 Windows 身份验证 对于授权 我使用 AspNetCore Identity 中的自定义角色 出于各种原因不想使
  • 如何使用 IdentityServer 4 实施 Windows 身份验证

    如何使用Identity Server 4正确实现Windows身份验证 有没有样本可以做到这一点 我查看了 IdentityServer 4 的源代码 在 AccountController 的 Host 项目中 我注意到有 Window

随机推荐