Open Sourcing unseres Debug Tools Debwin

Hier ist ein weiteres Open-Source-Projekt auf unserer GitHub-Seite: Wir haben den Quellcode für unsere Logging-Anwendung Debwin unter der MIT-Lizenz veröffentlicht. Den Quellcode finden Sie auf unserem GitHub-Profil. Die ursprüngliche Ankündigung der App aus dem Jahr 2016, in der eine Reihe von Funktionen beschrieben wird, finden Sie hier.

Neben der Protokollierung der Debug-Ausgaben von List & Label oder dem Report Server kann es als generischer UDP-Paketlogger verwendet werden, der auf einem frei konfigurierbaren UDP-Port auf eingehende Nachrichten wartet. Sie können die eingehenden Nachrichten auch parsen, ein Beispielparser für Log4J-Pakete ist enthalten.

Viele von Ihnen sind mit Debwin4 vertraut, da wir im Rahmen unseres Support-Prozesses häufig nach Log-Dateien fragen, die mit diesem Tool erstellt wurden. Sie sollten noch heute damit beginnen, Logging in Ihre eigene Anwendung einzubauen, wenn Sie es nicht schon tun – für uns ist es ein unverzichtbares „Feature“ von List & Label. Eigenes Logging ist ganz einfach, wenn Sie List & Label in Ihrer Anwendung integriert haben. Die grundlegendste Anwendung ist die LlDebugOutput-API. Sie ermöglicht die Ausgabe von einfachen Strings. Wenn Sie mehr wollen, finden Sie hier ein Beispiel, wie Sie die Protokollierung zu Ihrer eigenen IDataProvider-Implementierung hinzufügen können.

Fügen Sie einfach die Schnittstelle ISupportsLogger zu Ihrer Datenanbieter-Implementierung hinzu. Sie hat eine einzige Methode:

void SetLogger(ILlLogger logger, bool overrideExisting);

Die ILlLogger-Schnittstelle ist der interessante Teil. Sie können Debug-, Info-, Warn- und Fehlermeldungen ausgeben:

public interface ILlLogger
{
    bool WantOutput(LogLevels level, LogCategory category);
    void Debug(LogCategory category, [Localizable(false)] string message, params object[] args);
    void Debug(int indentationDelta, LogCategory category, [Localizable(false)] string message, params object[] args);
    void Info(LogCategory category, [Localizable(false)] string message, params object[] args);
    void Info(int indentationDelta, LogCategory category, [Localizable(false)] string message, params object[] args);
    void Warn(LogCategory category, [Localizable(false)] string message, params object[] args);
    void Error(LogCategory category, [Localizable(false)] string message, params object[] args);
}

Anschließend können Sie in der Debwin Logger App nach dem gewünschten Log-Level filtern.

Wenn Sie andere Teile Ihrer Anwendung protokollieren möchten, können Sie jederzeit eine ILlLogger-Schnittstelle erstellen, indem Sie die statische Eigenschaft LoggingHelper.LlCoreDebugOutputLogger wie folgt verwenden:

LoggingHelper.LlCoreDebugOutputLogger.Error(LogCategory.Net, "Server connection error ({0}): {1}", response.StatusCode.ToString(), response.Result);

Das Hinzufügen von Logging zu einer Anwendung ist ein No-Brainer für jede Entwicklung, in der auf Qualität gesetzt wird. Und falls die Logging-App nicht alle Funktionen hat, die Sie für eine Analyse benötigen, können Sie noch heute einen Beitrag leisten. Wir würden uns freuen, Pull Requests für das Projekt zu erhalten.

Empfohlene Artikel

Schreibe einen Kommentar