Ich verwalte einen Dienst, der "benutzerfreundliche" Fehler zu meinen geliebten Benutzern anzeigt. Wenn sie einen Fehler erhalten, rufen sie normalerweise Support an und erwähnen die RequestId. Ich erhalte diese Anfrage-ID mit dem Code unten:Log RequestId in asp.net Kern
public string RequestId => Activity.Current?.Id ?? HttpContext.TraceIdentifier;
Nun ist die interessante Sache ist, ... wir zeigen die ID für den Benutzer aber wir halten es nicht in unserem Protokoll :).
Derzeit senden wir alle Protokolle
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
(...)
loggerFactory.AddAWSProvider(
Configuration.GetAWSLoggingConfigSection("Cloudwatch"),
(l, obj, ex) =>
{
var level = "info";
if (l == LogLevel.Error || l == LogLevel.Critical) level = "error";
else if (l == LogLevel.Warning) level = "warn";
return JsonConvert.SerializeObject(new
{
level,
msg = ex?.Message ?? obj.ToString(),
meta = ex?.ToString()
});
});
(...)
}
ich einige Probleme mit diesem Code zu Cloudwatch habe einen guten Weg zu finden, die Httprequest des ganzen Weg hinunter diesem Lambda zu senden, so kann ich konsequent die Id anmelden.
Wie würden Sie damit umgehen?
Danke, Seb
Omg! Ich werde das nächsten Montag versuchen! Thx – Seb
Kann es gut funktionieren! – Seb