+++ /dev/null
-#include "../include/logfile.h"\r
-\r
-#include <ctime>\r
-#include <cstdarg>\r
-\r
-#ifdef XMEM\r
- #include <xmem.h>\r
-#endif\r
-\r
-LogFile::LogFile()\r
-{\r
- m_fileptr=NULL;\r
- m_loglevel=LOGLEVEL_DEBUG;\r
- m_writedate=false;\r
- m_writeloglevel=false;\r
- m_writenewline=true;\r
- m_datebuffer=new char[100];\r
-}\r
-\r
-LogFile::LogFile(const std::string &filename)\r
-{\r
- m_fileptr=NULL; \r
- m_loglevel=LOGLEVEL_DEBUG;\r
- m_writedate=false;\r
- m_writeloglevel=false;\r
- m_filename=filename;\r
- m_writenewline=true;\r
- m_datebuffer=new char[100];\r
-}\r
-\r
-LogFile::~LogFile()\r
-{\r
- CloseFile();\r
- delete [] m_datebuffer;\r
-}\r
-\r
-bool LogFile::CloseFile()\r
-{\r
- //ZThread::Guard<ZThread::Mutex> g(m_logmutex);\r
- PThread::Guard g(m_logmutex);\r
-\r
- if(m_fileptr)\r
- {\r
- fclose(m_fileptr);\r
- m_fileptr=NULL;\r
- }\r
-\r
- return true;\r
-}\r
-\r
-bool LogFile::OpenFile()\r
-{\r
- CloseFile();\r
-\r
- //ZThread::Guard<ZThread::Mutex> g(m_logmutex);\r
- PThread::Guard g(m_logmutex);\r
-\r
- m_fileptr=fopen(m_filename.c_str(),"a+b");\r
-\r
- if(m_fileptr)\r
- {\r
- return true;\r
- }\r
- else\r
- {\r
- return false; \r
- }\r
-}\r
-\r
-void LogFile::WriteDate()\r
-{\r
- if(m_fileptr)\r
- {\r
- time_t rawtime=time(NULL);\r
- struct tm *timeinfo=gmtime(&rawtime);\r
- \r
- strftime(m_datebuffer,99,"%Y-%m-%d %H:%M:%S : ",timeinfo);\r
- m_datebuffer[99]='\0';\r
- \r
- fputs(m_datebuffer,m_fileptr);\r
- }\r
-}\r
-\r
-void LogFile::WriteLog(const char *format, ...)\r
-{\r
- va_list va;\r
- va_start(va,format);\r
- \r
- if(!m_fileptr)\r
- {\r
- OpenFile();\r
- }\r
- \r
- if(m_fileptr)\r
- {\r
- //ZThread::Guard<ZThread::Mutex> g(m_logmutex);\r
- PThread::Guard g(m_logmutex);\r
- if(m_writedate)\r
- {\r
- WriteDate();\r
- }\r
- vfprintf(m_fileptr,format,va);\r
- if(m_writenewline==true)\r
- {\r
- fputs("\r\n",m_fileptr);\r
- }\r
- fflush(m_fileptr);\r
- }\r
- \r
- va_end(va);\r
-\r
-}\r
-\r
-void LogFile::WriteLog(const std::string &text)\r
-{\r
- if(!m_fileptr)\r
- {\r
- OpenFile(); \r
- }\r
- \r
- if(m_fileptr)\r
- {\r
- //ZThread::Guard<ZThread::Mutex> g(m_logmutex);\r
- PThread::Guard g(m_logmutex);\r
- if(m_writedate)\r
- {\r
- WriteDate(); \r
- }\r
- fputs(text.c_str(),m_fileptr);\r
- if(m_writenewline==true)\r
- {\r
- fputs("\r\n",m_fileptr);\r
- }\r
- fflush(m_fileptr);\r
- }\r
-}\r
-\r
-void LogFile::WriteLog(const LogLevel level, const char *format, ...)\r
-{\r
- if(level<=m_loglevel)\r
- {\r
- \r
- va_list va;\r
- va_start(va,format);\r
- \r
- if(!m_fileptr)\r
- {\r
- OpenFile(); \r
- }\r
- \r
- if(m_fileptr)\r
- {\r
- //ZThread::Guard<ZThread::Mutex> g(m_logmutex);\r
- PThread::Guard g(m_logmutex);\r
- if(m_writedate)\r
- {\r
- WriteDate(); \r
- }\r
- if(m_writeloglevel)\r
- {\r
- WriteLogLevel(level); \r
- }\r
- vfprintf(m_fileptr,format,va);\r
- if(m_writenewline==true)\r
- {\r
- fputs("\r\n",m_fileptr);\r
- }\r
- fflush(m_fileptr);\r
- }\r
- \r
- va_end(va);\r
- }\r
-}\r
-\r
-void LogFile::WriteLog(const LogLevel level, const std::string &text)\r
-{\r
- if(level<=m_loglevel)\r
- {\r
- if(!m_fileptr)\r
- {\r
- OpenFile(); \r
- }\r
- \r
- if(m_fileptr)\r
- {\r
- //ZThread::Guard<ZThread::Mutex> g(m_logmutex);\r
- PThread::Guard g(m_logmutex);\r
- if(m_writedate)\r
- {\r
- WriteDate(); \r
- }\r
- if(m_writeloglevel)\r
- {\r
- WriteLogLevel(level);\r
- }\r
- fputs(text.c_str(),m_fileptr);\r
- if(m_writenewline==true)\r
- {\r
- fputs("\r\n",m_fileptr);\r
- }\r
- fflush(m_fileptr);\r
- }\r
- } \r
-}\r
-\r
-void LogFile::WriteLogLevel(LogLevel level)\r
-{\r
- if(m_fileptr)\r
- {\r
- switch(level)\r
- {\r
- case LOGLEVEL_FATAL:\r
- fputs("FATAL : ",m_fileptr);\r
- break; \r
- case LOGLEVEL_ERROR:\r
- fputs("ERROR : ",m_fileptr);\r
- break;\r
- case LOGLEVEL_WARNING:\r
- fputs("WARN : ",m_fileptr);\r
- break;\r
- case LOGLEVEL_INFO:\r
- fputs("INFO : ",m_fileptr);\r
- break;\r
- case LOGLEVEL_DEBUG:\r
- fputs("DEBUG : ",m_fileptr);\r
- break;\r
- default:\r
- fputs("???? : ",m_fileptr);\r
- break;\r
- }\r
- }\r
-}\r
-\r
-void LogFile::WriteNewLine()\r
-{\r
- //ZThread::Guard<ZThread::Mutex> g(m_logmutex);\r
- PThread::Guard g(m_logmutex);\r
-\r
- if(m_fileptr)\r
- {\r
- fputs("\r\n",m_fileptr);\r
- fflush(m_fileptr);\r
- }\r
-}\r
-\r