在 ASP.NET 核心应用程序中使用 serilog 时,日志条目中的 ActionId 是什么?

What is ActionId in the log entry when using serilog in ASP.NET Core application?

所以查看由 serilog 创建的日志,我看到 ActionId 值是某种类型的 GUID。我知道这是由 ASP.NET 核心应用程序默认添加的,但这个值到底是什么?

日志条目的一个示例包含以下条目(以及其他条目):

ActionId: 1fbc88fa-42db-424f-b32b-c2d0994463f1
ActionName: /Index

我注意到 ActionId 对于同一个 ActionName 可以不同,但​​它到底代表什么?当我搜索我的日志时,ActionId 有什么用处?

asp.net 核心为您的应用生成的 ActionDescriptor 简直是独一无二的。

我不太确定你为什么对此感到好奇...但是 this 证明我在说什么。

I notice that ActionId can be different for the same ActionName

ActionId 将在整个应用程序生命周期内存活,但是当您重新部署应用程序时,ActionDescriptor 会被初始化。因此,差异Id.

And for what good use can ActionId be used when I am searching through my logs

显然,这是一种更好的搜索日志的方式,例如在使用 elastic 时,fields.ActionId: "YourActionIdHere" 将为您提供所有触及 Action 方法的请求。

当然,当您看到差异 ActionId 时,意味着您的应用已重新部署。但实际上......我从来没有使用过它,因为我们已经计划好该应用程序将发布什么以及何时发布。