+++ /dev/null
-#ifndef _logfile_\r
-#define _logfile_\r
-\r
-//#include <zthread/Singleton.h>\r
-//#include <zthread/Mutex.h>\r
-#include "pthreadwrapper/mutex.h"\r
-#include <string>\r
-#include "pthreadwrapper/singleton.h"\r
-\r
-class LogFile:public PThread::Singleton<LogFile>\r
-{\r
-public:\r
- LogFile();\r
- LogFile(const std::string &filename);\r
- ~LogFile();\r
-\r
- enum LogLevel\r
- {\r
- LOGLEVEL_FATAL=0,\r
- LOGLEVEL_ERROR=1,\r
- LOGLEVEL_WARNING=2,\r
- LOGLEVEL_INFO=3,\r
- LOGLEVEL_DEBUG=4\r
- };\r
- \r
- bool OpenFile();\r
- bool CloseFile();\r
- \r
- std::string GetFileName() { return m_filename; }\r
- void SetFileName(std::string filename) { m_filename=filename; }\r
- \r
- const bool GetWriteDate() { return m_writedate; }\r
- void SetWriteDate(const bool writedate) { m_writedate=writedate; }\r
- \r
- const bool GetWriteLogLevel() { return m_writeloglevel; }\r
- void SetWriteLogLevel(const bool writeloglevel) { m_writeloglevel=writeloglevel; }\r
- \r
- const LogLevel GetLogLevel() { return m_loglevel; }\r
- void SetLogLevel(const LogLevel loglevel) { m_loglevel=loglevel; }\r
-\r
- const bool GetWriteNewLine() { return m_writenewline; }\r
- void SetWriteNewLine(const bool writenewline) { m_writenewline=writenewline; }\r
- \r
- void WriteLog(const char *format, ...);\r
- void WriteLog(const std::string &text);\r
- void WriteLog(const LogLevel level, const char *format, ...);\r
- void WriteLog(const LogLevel level, const std::string &text);\r
-\r
- void WriteNewLine();\r
- \r
-private:\r
- void WriteDate();\r
- void WriteLogLevel(LogLevel level);\r
-\r
- FILE *m_fileptr;\r
- std::string m_filename;\r
- LogLevel m_loglevel;\r
- bool m_writedate;\r
- bool m_writeloglevel;\r
- bool m_writenewline;\r
- char *m_datebuffer;\r
-\r
- PThread::Mutex m_logmutex;\r
- \r
-};\r
-\r
-#endif // _logfile_\r