- Einführung
-
Welcher Entwickler kennt es nicht, das leidige Thema der Erstellung von LOG–Dateien.
Sei es, weil die Projektanforderungen einen entsprechenden Mechanismus vorsehen
oder weil man einfach nur mal wissen möchte, was so alles im Inneren eines
Programms abläuft, ohne dafür gleich den Debugger „anschmeißen“
zu müssen.
- Features
-
Neben der Basisfunktionalität des Schreibens einfacher LOG–Dateien ist
es mit LogAndTrace auch möglich, Ausgaben auf einer
Konsole zu erzeugen. Das ist dann besonders hilfreich, wenn man zum Beispiel den
Ablauf des Programms verfolgen, also tracen, will. Außerdem ist dieser Logger
in der Lage, in die windowseigene Ereignisaufzeichnung zu schreiben. Zugegeben,
für Entwickler im Umfeld des .NET Frameworks ist das ein alter Hut. Aber da
gibt es ja noch alle anderen Entwickler.
- Installation
-
Zur Installation von LogAndTrace ist es im ersten Schritt
erforderlich, alle im Download vorhandenen DLLs in ein Verzeichnis zu kopieren,
dass im Pfad eingetragen ist. Grundsätzlich empfiehlt sich hierfür das
Verzeichnis, in dem auch Windows installiert wurde.
Im zweiten Schritt werden dann die restlichen Dateien des Downloads auf die zugehörigen
Verzeichnisse der Entwicklungsumgebung verteilt werden. Das heißt, dass alle
Headerdateien in das Standard–INC–Verzeichnis und alle LIB– und
PDB–Dateien in das Standard–LIB–Verzeichnis kopiert werden. Damit
ist die Installation von LogAndTrace auch schon fertig
gestellt.
- Beispiel
-
Aufgrund der Vielzahl der Möglichkeiten des Einsatzes von LogAndTrace
soll an dieser Stelle die Implementierung nur als C#–Beispiel gezeigt werden.
Das ist auch vernünftig, da sich die Umsetzung in Visual Basic .NET analog
gestaltet und das Beispiel in C++ ein wenig ausladend werden würde, denn schließlich
soll das Wesentliche nicht wegen zu vieler Details verloren gehen.
Das folgende Fragment zeigt die mindestens erforderliche Implementierung, um mit
Hilfe von LogAndTrace genau eine Meldung, eine Warnung
und auch einen Fehler auszugeben. Dabei erfolgt die Anzeige der Ausgaben in einem
Konsolenfenster, das bei Bedarf durch den Logger auch erzeugt wird. Dieser Code–Schnipsel
enthält noch ein Beispiel für die Verwendung der Dump–Ausgabe, die
ebenfalls mit dem Logger vorgenommen werden kann.
namespace plexdata
{
namespace logtrace
{
class Program
{
static void Main(string[] args)
{
Logger logger = new plexdata.logtrace.Console();
byte[] buffer = new byte[256];
for (int idx = 0; idx < buffer.Length;
idx++)
{
buffer[idx] = (byte)idx;
}
logger.Attach("Log&Trace API (C#)");
logger.Message("Simply a message...");
logger.Warning("Just a warning...");
logger.Error("Oops, an error...");
logger.Dump(buffer);
logger.Detach();
}
}
}
}
|
LogAndTrace–Wrapperklasse
für C#
Dem aufmerksamen Leser ist sicherlich aufgefallen, dass das obige Beispiel eine
Instanz der Klasse Logger erzeugt und verwendet. Diese
Klasse stellt nichts anderes als einen Wrapper dar, dessen Kernaufgabe darin besteht,
die Schnittstelle zur logapi.dll bereitzustellen. Die
Implementierung dieser C#–Klasse kann hier eingesehen und kopiert werden. Wurde die gesamte
Anwendung kompiliert und gestartet, dann erfolgt deren Ausgabe wie in der folgenden
Abbildung dargestellt.
- Achtung!
-
Wichtig und nicht zu unterschätzen ist auch die Anbindung der „richtigen“
DLL–Variante an das jeweilige Projekt, da es anderenfalls zu Problemen kommen
kann, deren Ursache nicht sofort klar zu erkennen ist. Das gilt vor allem dann,
wenn man Applikationen unter C# in einer 64–Bit–Umgebung erstellen will.
Denn hier kann es unter bestimmten Voraussetzungen zu einer BadImageFormatException
kommen, deren Ursprung nicht wirklich auf die Verwendung der „falschen“
DLL hinweist.
Viel Spaß beim Loggen und Tracen…
|