Dans une application ASP.NET Core 2, j'ai besoin d'un identifiant unique (par exemple Guid) pour chaque demande afin de pouvoir inclure cet identifiant dans chaque journal et comprendre la séquence des journaux de chaque demande.
Ce n'est pas difficile de l'écrire moi-même, mais je me demande s'il existe une fonctionnalité intégrée que je peux utiliser ou une façon d'ASP.NET Core 2 pour y parvenir.
Vous pouvez utiliser System.Diagnostics.Activity
classe ( source ). De Guide d'utilisation de l'activité
Activity.Id
sert d'ID de demande hiérarchique en termes de protocole de corrélation HTTP
Ceci est utilisé par exemple par Microsoft/ApplicationInsights-aspnetcore pour la surveillance des applications.
ASP.NET Core a également HttpContext.TraceIdentifier
qui identifie de manière unique la demande en cours.
Il est généré pour chaque demande entrante par Kestrel, il ne convient donc pas pour corréler les appels à un service d'un autre, mais convient pour corréler les journaux pour une seule demande ensemble, ou pour corréler un message d'erreur qui pourrait être affiché pour l'utilisateur avec les journaux correspondants.
On dirait que vous cherchez un identifiant de corrélation . Peut-être Correlation ID Middleware serait utile?