CSDNCurrent de:Logging
Übersicht
Der Client kann seine seine Logging-Einstellungen vom Cryptshare-Server anfordern. Dies ermöglicht es dem Administrator des Cryptshare-Servers, die Menge der geloggten Informationen zu bestimmen. Darüber hinaus können Clients ihre Log-Einträge zum Zwecke des Remoteloggens an den Cryptshare-Server senden.
Logging-Einstellungen anfordern
Um die Logging-Einstellungen anzufordern, instanziieren Sie wie gewohnt einen Client und rufen folgende Methode auf:
var loggingSettings = client.GetLoggingSettings();
Das Ergebnis ist ein LogginSettings
-Objekt, welches das zu verwendende Log-Level bestimmt und angibt, ob Remotelogging betrieben werden darf.
Console.WriteLine("Log Level: {0}", loggingSettings.Level); Console.WriteLine("Is Remote Logging enabled? {0}", loggingSettings.RemoteLoggingEnabled ? "Yes" : "No");
Wenn Ihre Anwendung von Task<T>s
und den async
/await
Schlüsselwörtern Gebrauch macht, können Sie auch die asynchrone Variante der Methode client.GetLoggingSettingsAsync()
verwenden.
Es kann unter Umständen notwendig sein, vom Client verursachte Log-Einträge an den Cryptshare-Server zu übermitteln, wenn bspw. der Client keinen Ad-Hoc-Zugriff auf das Dateisystem erlaubt, um Log-Dateien einzusehen. In solchen Szenarien kann der Cryptshare-Administrator dem Client das Übermitteln von Log-Einträgen gestatten. Dies geschieht durch das Hinzufügen der Client-ID (zugänglich via client.ClientId
) zur Liste von Clients, welchen das Remotelogging gestattet ist. Die folgende Seite beschreibt den Prozess im Detail: Remotelogging.
Vorausgesetzt der Client darf Remotelogging betreiben (siehe Nutzung von loggingSettings.RemoteLoggingEnabled
weiter oben), können die Log-Einträge wie folgt übermittelt werden:
var logEntries = new LogEntry[] { new LogEntry(LogLevel.Warn, "This is a warning."), new LogEntry(LogLevel.Error, "This is an error."), }; client.SendLogEntries(logEntries);
Wenn Ihre Anwendung von Task<T>
s und den async
/await
Schlüsselwörtern Gebrauch macht, können Sie auch die asynchrone Variante der Methode client.SendLogEntriesAsync()
verwenden.
Wenn Sie versuchen, Log-Einträge an den Cryptshare-Server zu übermitteln, obwohl der Server dies nicht gestattet, wirft die Methode eine CryptshareServiceException
-Ausnahme mit Code 3004
.
Bitte beachten Sie, dass Log-Einträge mit niedrigerem Log-Level als der vom Cryptshare-Server vorgegebene Log-Level nicht remotegeloggt werden.
Ob Sie jeden Log-Eintrag einzeln oder mehrere Log-Einträge auf einmal loggen, ist Ihnen überlassen. Beide Vorgehen haben jeweils Vor- und Nachteile: Das Senden von mehreren Log-Einträgen auf einmal verursacht weniger Datenverkehr, doch im Falle eines Anwendungsabsturzes wurden unter Umständen die neuesten Log-Einträge nicht an den Cryptshare-Server übermittelt. Das Senden von einzelnen Log-Einträgen bringt gegenteilige Vor- und Nachteile mit sich.