//
// Logtrace.cpp
// ============
//
// Bibliotheksfunktionen zum schreiben von Log & Trace Informationen
//
// Globale Funktionen werden (i.d.R.) über Markos zur Verfügung gestellt.
//
// LOGTRACE(L,TEXT)  : Ausgabe eines Textes mit Level L
// LOGTRACE_LV(L,X)  : Ausgabe einer Variablen X unter LogLevel L
//
//
#include <iostream>
using namespace std;

//
// Interne (static) Varaiblen
//
//
static int LOGLEVEL = 3;

//
// LogTrace  (int level, char * File , int Line ,char *text)
// 
// level:  Werte zwischen 1 und 9
// *File:  Name der Quelldatei
// Line:   Zeilennummer Quelldatei
// *text:  Text der ausgegeben werden soll
//
// Kein Returnwert aber bei Fehler beim Öffnen der Datei exit(1)
//
//
void LogTrace (int level, char * File , int Line ,char *text)
{

	//
	// Nach erfolgreichem Öffnen schreiben der Tracezeile nach logstream (i.e. global)
	//
	if (level <= LOGLEVEL )
		clog << level << " - " << text << "  -  [" << File << ":" << Line << "]" << endl;

}

//
// LogTrace  (int level, char * File , int Line ,char *text)
// 
// Überladene Funktion:
//
// level:  Werte zwischen 1 und 9
// *File:  Name der Quelldatei
// Line:   Zeilennummer Quelldatei
// *text:  Text der ausgegeben werden soll
// lvar:   Integer (i.e. long) Variable für Ausgabe
//
// Kein Returnwert aber falls Fehler beim Öffnen der Datei exit(1)
//
//
void LogTrace (int level, char * File , int Line ,char *text , long lvar)
{

	//
	// Nach erfolgreichem Öffnen schreiben der Tracezeile nach logstream (i.e. global)
	//
	if (level <= LOGLEVEL)
		clog << level << " - Variable " << text << " = " << lvar 
		     <<"  -  [" <<File<<":" << Line << "]" << endl;

}

