MvvmCross Mvx.Trace-Nutzung

7

Ich benutze MvvmCross. In der Bibliothek sehe ich die Verwendung der Mvx.Trace-Methode, aber keine Ausgabe in der Konsole / Ausgabefenster. Wie man es benutzt?

ps. Ich habe die Compiler-Konstante Trace = true

gesetzt

Danke.

    
Arthur Kater 21.06.2013, 11:16
quelle

2 Antworten

21

MvvmCross DebugTrace wird über eine Singleton-Implementierung von IMvxTrace

geroutet

Jede Plattform bietet verschiedene Implementierungen davon:

  • Die Windows-Plattformen verwenden Debug trace (weil Trace selbst nicht auf allen Windows-Plattformen verfügbar ist)
  • Android verwendet ein duales Protokoll sowohl von Debug als auch von Android log
  • iOS verwendet ein duales Protokoll sowohl von Debug als auch von iOS Console

Dies funktionierte gut in früheren Versionen von MvvmCross, besonders dort, wo Leute direkt mit dem MvvmCross-Quellcode verbunden waren und so direkt an die Debug- oder Release-MvvmCross-Binärdateien binden konnten.

Wie auch immer ... weil die Leute jetzt in zunehmendem Maße die Release-Binaries von Nuget verwenden - in denen Debug natürlich kompiliert wird, dann lassen die Leute oft fragen: "Wie man es benutzt?"

Der einfachste Weg ist, die Initialisierung von IMvxTrace in Ihrer Setup -Klasse zu überschreiben.

Das ist einfach zu machen - z.B.:

%Vor%

wo MyDebugTrace ist etwas wie:

%Vor%

Wenn Sie verschiedene Implementierungen für Debug / Release einschließen wollten; wenn Sie dies zur Laufzeit ein- / ausschalten wollten; wenn Sie nach MvxTraceLevel oder tag filtern möchten; oder wenn Sie eine Protokollierungs-Engine eines Drittanbieters verwenden möchten, sollte dies auch einfach mit einfachen C # auf jeder Plattform möglich sein.

    
Stuart 21.06.2013, 11:24
quelle
4

Schlagen Sie einfach ein Problem auf iOS mit der aktuellen Lösung von Stuart.

Das Ausführen einer Debugsitzung in VS mit dem MvxTrace mit Debug.WriteLine kann extrem langsam sein, je nachdem, wie ausführlich die Protokollierung Ihrer Anwendung ist. Gleiches gilt für Trace.WriteLinte . Verwenden Sie stattdessen Console.WriteLine (wie MvvmCross MvxDebugTrace tut), was nicht betroffen ist.

Sehen Sie diesen Xamarin-Bug-Gegenstand für "weitere" Details: Ссылка

    
GGirard 31.12.2014 19:59
quelle