CSDNCurrent de:Logging

Aus Cryptshare Documentation
Version vom 28. Juli 2022, 10:58 Uhr von imported>Wehrenbrechtb (Typo)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation, Suche

Ü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.

Log-Einträge an Cryptshare-Server übermitteln

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.