Motivation

Das im folgenden beschriebene Projekt bietet die komfortable Möglichkeit, Ausgaben eines Programms in ein separates Fenster zu machen und dort zu analysieren.

Urs Loggig GUI 

Download

Download VS 2015 Projekt
VS 2015
Projekt
  Download Binary
Binary

Prinzip

Funktionsprinzip

Ein .NET-Applikation bindet UrsLoggingLib ein und ruft dessen Methoden zur Anzeige von Logging-Daten auf. Der erste Aufruf einer Methode aus UrsLoggingLib bewirkt, dass einen Instanz von UrsLoggingDisplay gestartet wird. UrsLoggingDisplay erstellt eine NamedPipe über die Logging-Daten übertragen werden können. UrsLoggingLib verbindet sich mit dieser Pipe und sendet über diese die entsprechenden Daten.

Für native C/C++-Programme gibt es eine Wrapper-DLL, die die wichtigsten Methoden für diese Programmtypen zugänglich macht.

Verwendung

Bedienung

Bedienung

 

Logging-Fenster

Das Hauptelement sind das Logging-Fenster. Hier werden die Logging-Einträge gelistet. Welche Einträge angezeigt werden sollen, kann über den Nachrichtenfilter eingestellt werden. Das Logging-Fenster besitzt ein Kontext-Menü mit dem man Inhalte auswählen und in die Zwischenablage kopieren kann.

Kontext-Menü des Logging-Fensters

Wählt man "Text Kopieren", nur der Text der Nachrichten kopiert (rechte Spalte). "Alles kopieren" kopiert auch den Timestamp und den Nachrichtentyp. Die einzelnem Spalten werden durch ein Tabstop-Zeichen getrennt.

Nachrichtenfilter

Über das anhaken der entsprechenden CheckBoxes kann ausgewählt werden, welche Nachrichtentypen (mittlere Spaste angezeigt werden. Standardmäßig besitzt der Filter die Einträge "Intern/Undef.", "Nachricht", "Warnung" und "Fehler". Bei Bedarf lässt er sich über das API konfigurieren.

Konsolen-Fenster

Im Konsolen-Fenster wird Fließtext angezeigt. Es dient zur Ausgabe von unstrukturierten Informationen.

Schriftauswahl

Hier lässt sich die zur Anzeige benutzte Schrift einstellen.

Verbindungsanzeige

Hier wird angezeigt, ob eine Verbindung zu einem Client besteht. Werden Daten empfangen, wechselt das Symbol für kurze Zeit die Farbe von Blau auf Rot.

.NET API

UrsLoggingLib enthält als Kernelement das Modul UrsLogging, dass sämtliche öffentlichen Methoden bereit stellt. Die Implementierung als Modul bewirkt, dass sämtliche Methoden ohne die Angabe eines Klassennamens aufgerufen werden können.

Initialisierung

Die Methode UrsInitLogging erlaubt es, Einfluss auf die Art und Weise zu nehmen, wie eine Instanz von UrsLoggingDisplay geöffnet wird. Wird diese Funktion nicht verwandt, wird UrsLoggingDisplay beim ersten Aufruf einer anderen Methode mit Standardeinstellungen initialisiert.

UrsInitLogging besitzt zwei optionale Parameter:

UrsLoggingDisplay zeigt nach dem Verbindungsaufbau die Nachricht "Client connected" an und die Verbindungsanzeige wechselt auf blau .

Zu Erwähnen wäre an dieser Stelle die Eigenschaft ThrowConnectExecptions. Wenn diese den Wert True hat, wird eine Exception geworfen, wenn keine Verbindung zu der Pipe aufgebaut werden kann. Dieses Problem sollte normalerweise nicht auftreten, deshalb ist der Standardwert hier True. Wenn es Probleme mit der Bearbeitung von Exceptions gibt, sollte diese Eigenschaft vor Aufruf von UrsInitLogging auf False gesetzt werden.

 

 

Methoden

Logging

Zur Ausgabe von Logging-Nachrichten stehen folgende Methoden zur Verfügung:

Konfiguration

Aktuell kann nur der Nachrichtenfilter konfiguriert werden.

C/C++ API

Im C/C++ API (UrsLoggingC) sind folgende Funktionen über eine Wrapper-Klasse auf die entsprechenden Methoden des .NET API abgebildet:

_declspec(dllexport) void UrsWriteLogItem (int MsgType, const char* charstrMsg);
_declspec(dllexport) void UrsWriteConsole(const char* charstrMsg);

Test-Programm

Das Projekt enthält auch zwei kleine Testprogramme.

.NET Testprogramm

Test-Applikation

Ein kleines Programm (UrsLoggingTestApp) erlaubt es, alle Funktionen anzusprechen.

C Testprogramm

Zum Testen der C-Schnittstelle dient das Konsolenprogramm UrsLoggingTestAppC.