Ereignisprotokollierung in Windows 10 Universal Apps

8

Ich versuche, ein Ereignisprotokoll für eine universelle Windows-Anwendung zu erstellen. Früher hatten wir System.Diagnostics EventLog , um Ereignisse zu protokollieren, aber auf der Plattform Windows 10 Universal Apps konnte ich nichts Ähnliches finden. Ist es möglich, Protokolle für Windows 10 zu erstellen und können diese Protokolle in eine Datei geschrieben werden, um später darauf zugreifen zu können?

Ich habe viel gesucht, konnte aber nichts finden.

    
murmansk 01.09.2015, 12:21
quelle

1 Antwort

8

FileLoggingSession

Seit Windows 8.1 gibt es die Klassen FileLoggingSession und LoggingChannel im Namensraum Windows.Foundation.Diagnostics , die bei entsprechender Konfiguration die Protokollierung auf Dateien durchführen können. Weitere Informationen finden Sie in der offiziellen Dokumentation .

>

Die Initialisierung, Verwendung und das Abrufen der Log-Datei kann wie im folgenden Code-Schnipsel erfolgen, natürlich müssen Sie Interfaces, Singletons usw. erstellen, um es nutzbar zu machen:

%Vor%

Protokollierungssitzung

Genau wie FileLoggingSession Protokolle in eine Datei schreibt, aber der Hauptunterschied besteht darin, dass FileLoggingSession die Protokolle sofort in die Datei schreibt und LoggingSession nicht und Sie müssen manuell die Protokolle in eine Datei schreiben SaveToFileAsync Methode. Aus der Dokumentation:

  

Die FileLoggingSession-Klasse sendet protokollierte Nachrichten an Datenträgerdateien, wenn sie protokolliert werden. Die FileLoggingSession-Klasse verwendet die sequenzielle Protokollierung. Dies bedeutet, dass alle Nachrichten an eine Festplattendatei gesendet werden und eine sequenzielle Protokollhistorie beibehalten wird. Dies unterscheidet sich von der LoggingSession-Klasse, die protokollierte Nachrichten bei Bedarf auf den Datenträger sendet. Dies geschieht, wenn ein Problem auftritt und der unmittelbare Verlauf von speicherinternen Nachrichten für die Analyse benötigt wird.

MetroLog

Sie haben noch eine Alternative, wenn Sie FileLoggingSession oder LoggingSession klassen nicht verwenden möchten. Eine gute Lösung ist MetroLog , die ein Ziel FileStreamingTarget hat, das es sehr einfach macht, sich in einer Windows / Phone App anzumelden.

Sie erstellen den Logger, wenn Sie ihn benötigen, zum Beispiel auf einer Seite:

%Vor%

Dann können Sie es auf der Seite wie folgt verwenden:

%Vor%

MetroEventSource

Die zweite Lösung ist dieses Protokollierungsbeispiel in der MSDN-Beispielgalerie von Can Bilgin where Sie haben die Klasse MetroEventSource . Sie können Nachrichten zum Beispiel wie folgt protokollieren:

%Vor%

Wenn Sie diesen Logger verwenden, vergessen Sie nicht, ihn beim Ausführen der Anwendung zu initialisieren, wie im Beispielprojekt beschrieben.

    
Kristian Vukusic 01.09.2015, 21:23
quelle