2016-11-22 2 views
1

Ich möchte die vollständig qualifizierte URL der Anfrage bei der Anmeldung einbeziehen. Wenn verfügbar, möchte ich einen Ereignisprotokollierungsbereich (Kontexteigenschaft in Serilog) wie {RequestUrl} in meiner Protokollierungsvorlage verwenden. Woher weiß ich, ob bereits eine Eigenschaft verfügbar ist, die ich verwenden kann, oder wenn ich dies manuell tun muss?Welche Protokollbereiche sind standardmäßig verfügbar?

Ich kenne den folgenden Eigenschaften:

ActionId 
ActionName // Like ActionId from aspnet/Mvc (Microsoft.AspNetCore.Mvc.Internal.MvcCoreLoggerExtensions.ActionLogScope) 
Level // Gives the level e.g. Warning 
RequestId // Can be used for event correlation 
RequestPath // Like RequestId from aspnet/Hosting (Microsoft.AspNetCore.Hosting.Internal.HostingLoggerExtensions.HostingLogScope) 
SourceContext // Probably from serilog. Gives the TCategoryName of the ILogger e.g. MyNamespace.MyController 

Wo ist eine Übersicht über alle Eigenschaften während einer Anforderung standardmäßig unterstützt? Oder ist es möglich, alle verfügbaren Eigenschaften zur Laufzeit zu bekommen?

+1

Amts [docs] (https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging # scopes) nicht viel erwähnen ... –

+0

Wenn Sie Seq angeschlossen haben, können Sie wählen Sie Namen() aus Stream, um eine eindeutige Liste der Eigenschaften, die protokolliert wurden erhalten. Nicht sicher, ob das hilft, aber nicht viel anderes, woran ich denken kann. Viel Glück! –

+0

@NicholasBlumhardt Leider benutze ich Seq nicht :(Vielleicht kann jemand, der es verwendet, die vollständige Liste der Eigenschaften geben. – user764754

Antwort

-1

Sie sollten @ Operator vor Kontext verwenden können Serilog zu sagt das Objekt übergeben serialisiert.

_logger.LogInformation("{@context}!", context); 
+0

Sorry, aber meine Frage geht nicht darum, etwas mit Serilog zu serialisieren. – user764754

Verwandte Themen