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.
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:
Wenn Sie diesen Logger verwenden, vergessen Sie nicht, ihn beim Ausführen der Anwendung zu initialisieren, wie im Beispielprojekt beschrieben.
Tags und Links c# windows-10 windows-runtime win-universal-app winrt-xaml