Knowledge Base Nr: 00053 logger.cpp - http://www.swe-kaiser.de
Downloads:
Meldungen in Ringpuffer auf Platte mitloggen
/*
klasse die meldungen mitloggt. es wird nur geloggt wenn das verzeichnis existiert.
das datum wird an das logfile angeh�ngt.
MAXLOGFILES logfiles werden erzeugt danach wird von vorne anfangend wieder ueberschrieben (ringpuffer).
�ber setLogLevel(nLogLevel) kann gefiltert werden (siehe defines LOGxxxx (k�nnen verodert werden)).
setDebugLevel() stellt ein ob eine messagebox angezeigt werden soll
LOGALL (LOGERR|LOGWARN|LOGDATA|LOGINFO) loggt alle meldungen mit.
*/
#define LOGERR 0x01
#define LOGWARN 0x02
#define LOGDATA 0x04
#define LOGINFO 0x08
#define LOGPROGERR 0x10 //logische fehler im programm
#define LOGALL (LOGERR|LOGWARN|LOGDATA|LOGINFO|LOGPROGERR)
class CLog
{
public:
CLog(const char* lpszLogFilePath, const char* lpszFileName, const int MAXLOGFILES = 10, int nLogLevel = LOGALL, int nDebugLevel = LOGALL);
~CLog();
// nLevel: siehe defines LOGxxxx (k�nnen verodert werden)
void setLogLevel(int nLevel = LOGALL) { m_nLogLevel = nLevel; }
int getLogLevel() { return m_nLogLevel; }
void setDebugLevel(int nLevel = 0) { m_nDebugLevel = nLevel; }
int getDebugLevel() { return m_nDebugLevel; }
// nLevel: siehe defines LOGxxxx (k�nnen verodert werden)
int logMessage(char nLogType, const char* szFormat, ...);
FILE* getLogfileFp() { return m_fp; }
void setLogFileFp(FILE* fp) { close(); m_fp = fp; }
void close();
void showLogFile();
void logVersion();
protected:
int logString(const char* szString);
private:
char m_szFileName[200];
FILE* m_fp;
char m_nLogLevel;
char m_nDebugLevel;
};