leistungen  •  referenzen  •  download
Einführung

Welcher Entwickler kennt es nicht, das leidige Thema der Erstellung von LOG–Dateien. Sei es, weil die Projektanforderungen einen entsprechenden Mecha­nismus vorsehen oder weil man einfach nur mal wissen möchte, was so alles im Inneren eines Programms abläuft, ohne dafür gleich den De­bug­ger „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…

datenschutzerklärung  •  kontakt  •  impressum