Esta pregunta se relaciona con la recomendación Trace Context W3C que se integró en .NET y el rol que la propiedad HttpContext.TraceIdentifier está destinada a desempeñar en el futuro.
¿Una actividad (usando W3C) y HttpContext.TraceIdentifier son mutuamente excluyentes para fines de registro y seguimiento? Porque parecen superponerse bastante a las preocupaciones.
Al iniciar una nueva API de .NET, ¿es mejor que simplemente habilite W3C y registre los identificadores de rastreo/intervalo/principal, en lugar de preocuparse por el identificador de rastreo que hemos estado usando hasta la fecha?
Entiendo que en:
Aquí hay una entrada de registro con formato JSON que registra tanto el TraceIdentifier (es decir, RequestId) como las propiedades de la actividad SpanId , TraceId y ParentId como referencia.
{ "@t": "2021-08-13T17:00:10.7787030Z", "@mt": "HTTP {RequestMethod} {RequestPath} responded {StatusCode} in {Elapsed:0.0000} ms", "@r": [ "0.6127" ], "UserId": "00000000-0000-0000-0000-000000000000", "RequestMethod": "GET", "RequestPath": "/", "StatusCode": 200, "Elapsed": 0.61267, "SourceContext": "Serilog.AspNetCore.RequestLoggingMiddleware", "SpanId": "332010586910af41", "TraceId": "c9d2356397fdd64998690c709acf9a51", "ParentId": "0000000000000000", "RequestId": "0HMAUFETQ32F5:00000005", "ConnectionId": "0HMAUFETQ32F5" }