25#error logging.h is only for C++!
38#define DBG_LOG(channel) if (gDbgLog.configured(channel, __FILE__, __LINE__)) gDbgLog
39#define ERR_LOG(channel) if (gErrLog.configured(channel, __FILE__, __LINE__)) gErrLog
40#define ONL_LOG(channel) if (gOnlLog.configured(channel, __FILE__, __LINE__)) gOnlLog
43typedef void (*funcp)(void);
120 Log(
const string& fname =
"",
123 const string& toLog =
"",
124 const string& progName =
"Unknown",
125 const string& version =
"Vx.x");
127 int init(
const string& fname,
130 const string& fileToLog,
131 const string& progName,
132 const string& version);
133 ofstream* getFstreamP() {
return mFstreamP; }
141 bool configured(
int channels,
const char* file,
int line);
142 ios::fmtflags setf(ios::fmtflags format) {
return mFstreamP->setf(format); }
173 if (log.getFstreamP() ) *log.getFstreamP() << out;
174 if (log.getConfChannels() &
cns) cout << out;
Klasse zum Loggen von Laufzeitausgaben in eine Datei.
Definition: logging.h:108
void stopLogging()
Schliesst Datei und loescht den allokierten ofstream.
Definition: logging.cpp:155
string mFileToLog
Name der Quelltextdatei, die als einzige geloggt wird.
Definition: logging.h:112
void writeHeader()
Schreibt Datei-Header.
Definition: logging.cpp:180
Log(const string &fname="", int channels=hgh|cns|med, int maxLen=50000, const string &toLog="", const string &progName="Unknown", const string &version="Vx.x")
Vorlaeufige Konstruktion eines Log-Objektes.
Definition: logging.cpp:51
int init(const string &fname, int channels, int maxLogLen, const string &fileToLog, const string &progName, const string &version)
Initialisiert die Dateinamen und Channels.
Definition: logging.cpp:90
int mMaxLogLen
maximale Laenge der Log-Dateien in Byte
Definition: logging.h:113
static string getTime()
Gibt die Systemuhrzeit als String im Format "hh:mm:ss" zurueck.
Definition: logging.cpp:305
string mVersion
Version des Programms (fuer Titelzeile der Log-Datei)
Definition: logging.h:116
static string getDate()
Gibt String mit dem aktuellen Datum der Systemuhr im Format "Wed Dec 21 2000" zurueck.
Definition: logging.cpp:196
string mProgName
Name des Programms (fuer Titelzeile der Log-Datei)
Definition: logging.h:115
string mFname
Name d. Datei, in die geloggt wird ("" = Konsole)
Definition: logging.h:109
static int strToChannels(const string &str)
Wandelt String str in channels um.
Definition: logging.cpp:358
int backupLogFile()
Benennt die Logdatei *.txt in *.bak um und loescht zuvor eine aeltere *.bak-Datei,...
Definition: logging.cpp:261
bool mIsSuppressed
Ausgabe unterdrueckt.
Definition: logging.h:114
static string channelsToStr(int channels)
Wandelt channels ch in einen String um.
Definition: logging.cpp:335
ofstream * mFstreamP
Filestream der Datei.
Definition: logging.h:110
int mConfChannels
Kanaele, die konfiguriert sind (z. B. per Ini-Datei)
Definition: logging.h:111
bool configured(int channels, const char *file, int line)
Prueft, ob die geforderten Kanaele ueberhaupt "eingeschaltet" sind und die Groesse des Logfiles.
Definition: logging.cpp:228
Log & operator<<(Log &log, const T &out)
Globales Funktions-Template.
Definition: logging.h:171
@ hgh
"High" - wichtige Ausgaben
Definition: logging.h:54
@ low
"Low" - unwichtige Ausgaben
Definition: logging.h:56
@ gnl
"General" - allgemeine Ausgaben
Definition: logging.h:53
@ med
"Medium" - normale Ausgaben
Definition: logging.h:55
@ ctl
"Control" - Kontrollfluss
Definition: logging.h:51
@ mem
"Memory" - Speicherverwaltung
Definition: logging.h:52
@ cns
"Console" - Ausgaben zusaetzlich auf Konsole
Definition: logging.h:58