Objekte oder Sammlungen zum Protokollieren serialisieren

8

Ich möchte einige zusätzliche Informationen mit meiner Fehlermeldung speichern. Zum Beispiel sollte es Benutzerabfrage oder etwas anderes sein. Wie soll ich das machen?

Gibt es Build-Methoden zum Protokollieren von Sammlungen, Struktur oder Objekten? Oder ich sollte es selbst serialisieren?

    
Yavanosta 11.04.2014, 08:29
quelle

3 Antworten

18

Nein, für das Serialisieren von Objekten ist nichts eingebaut. Wenn Sie formatierte Methoden wie Debug<T>(string message, T argument) intern verwenden (Sie können die Klasse NLog.LogEventInfo sehen), wird simple String.Format zum Erstellen formatierter Nachrichten verwendet (d. H. Nur ToString() wird für jeden Parameter aufgerufen).

Ich verwende Json.NET , um Objekte und Sammlungen zu JSON zu serialisieren. Es ist einfach, eine Erweiterungsmethode wie

zu erstellen %Vor%

Und dann verwenden Sie es während der Protokollierung:

%Vor%     
Sergey Berezovskiy 11.04.2014, 08:42
quelle
4
%Vor%     
fantastory 07.04.2015 15:20
quelle
2

Dieses vereinfachte Beispiel zeigt, wozu ich nach dem Spielen mit NLog gekommen bin. In meiner Lösung verwende ich eine code-basierte Konfiguration, um doppelte xml nlog.config-Dateien für jedes asp.net-Projekt zu minimieren. Funktioniert mit NLog v4.4.1.

Logger statischer Helfer:

%Vor%

FileTarget-Konfiguration:

%Vor%

Ausgabe für benutzerdefiniertes Objekt:

%Vor%     
Egor Elagin 02.02.2017 12:07
quelle

Tags und Links