docjunior.de
News
20.03.2013
Habe einen UART auf dem Tiny25 gebraucht. Gab keinen. Hab mir selber einen gebaut.

14.09.2011
Ich habe mich entschieden euch ein Geheimnis zu verraten: Ich hab ein Buch geschrieben: Mikrocontroller in Kürze

Menu
zurück
Gästebuch
eM@il
Sitemap
Logindaten
Benutzername

Passwort


Sie sind der
49590. Besucher
home/ Programmierung/ C-PlusPlus/ TinyLogger/
 
Index    Einleitung
   Funktionsweise
   Nutzung des Loggers
   Download

Einleitung Da ich zu faul war, mich in die logging-Systeme einzuarbeiten, hab ich mich kurzerhand entschieden, einen eigenen kleinen Logger zu schreiben. Dieser beherrscht unterschiedliche Debug-Stufen. Weiterhin kann man den Output auf C++ - ostreams legen, wodurch Dateien, etc. beschrieben werden können.


Funktionsweise Der Logger ist eine Singleton-Klasse. Über die Methode getInstance kann eine Instanz des Loggers geholt werden. Hierbei werden zwei Parameter benötigt, um den Klassennamen (frei vergebbar) mit einer Referenz auf die Klasse zu versorgen.
Dadurch kann man im Logfile einen Klassennamen sehen:

[DEBUG] Hallo Welt


Nutzung des Loggers /*
 * einbinden des Loggers
 * Wichtig ist der namespace!
 */
#include "logger/TinyLog.h"
using namespace logger;

/*
 * Dies ist eine Klasse zum Testen des Loggers
 */
class testklasse {
    /*
     * Referenz auf den Logger
     */
    TinyLog *logger;
    public:
    testklasse() {
        /*
         * hole dieInstanz des Loggers
         */
        logger = TinyLog::getInstance (this, "Testklasse");
        /*
         * Setze eine Debug-Nachricht ab
         * Als Debuglevel sind möglich:
         *
         *     EXCEPTION     - wird immer ausgegeben
         *     ERROR
         *     WARNING
         *     INFO         - ist Standard
         *     DEBUG
         *
         * this ist die Referenz zur Auflösung des Klassennamens
         * Der Text kann auch über eine char[] Variablen mittels sprintf,
         * etc. erzeugt werden, um Daten darzustellen
         */
        logger->print(DEBUG, this, "Hallo Welt");
    }

    ~testklasse () {
        /*
         * Setze eine Information ab
         */
        logger->print(INFO, this, "tearing down");
    }
};

int main(int argc, char **argv) {
    /*
     * Setzt das DebugLevel auf DEBUG, Standard ist INFO
     * Sämtliche Informationen werden ausgegeben.
     */
    TinyLog *logger = TinyLog::getInstance(0, "main");
    logger->setDebugLevel(DEBUG);
    /*
     * Leitet die Ausgaben in eine Logdatei um
     */
    ofstream logfile("c:/temp/logfile");
    logger->setOutStream(&logfile);

    testklasse *x = new testklasse;

    /*
     * logdateien sollten sicherheitshalber wieder geschlossen werden
     */
    logfile.close();
    


Download Download - Ich übernehme keine Funktionsgarantie. ;)



cmsJr by Jens Rapp, 2006 - 2008