00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _WUTIL_LOG_H_
00026 #define _WUTIL_LOG_H_
00027
00028 #include <string>
00029 #include <time.h>
00030 #include <list>
00031
00032 namespace wUtil
00033 {
00034
00036
00038
00039 class CLog
00040 {
00041 public:
00043 struct SLogEntry
00044 {
00046 SLogEntry(time_t TimeStamp, unsigned int iSeverity, const std::wstring& sMessage) :
00047 m_TimeStamp(TimeStamp), m_iSeverity(iSeverity), m_sMessage(sMessage) { }
00048
00050 SLogEntry(void) : m_TimeStamp(0), m_iSeverity(0) { }
00051
00052 time_t m_TimeStamp;
00053 unsigned int m_iSeverity;
00054 std::wstring m_sMessage;
00055 };
00056
00057 typedef std::list<SLogEntry> t_LogList;
00058
00063 void AddLogEntry(const std::wstring& sMessage, unsigned int iSeverity, time_t TimeStamp)
00064 { m_LogList.push_back(SLogEntry(TimeStamp, iSeverity, sMessage)); }
00065
00069 void AddLogEntry(const std::wstring& sMessage, unsigned int iSeverity = 5)
00070 { AddLogEntry(sMessage, iSeverity, time(0)); }
00071
00075 t_LogList GetLogEntries(unsigned int iSeverity = 0) const;
00076
00081 t_LogList GetLogEntries(unsigned int iHighSeverity, unsigned int iLowSeverity) const;
00082
00087 void WriteToFile(const std::wstring& sFilename, bool bAppend = true, const std::wstring& sLogHeader = L"") const;
00088
00090 void Clear(void)
00091 { m_LogList.clear(); }
00092
00093 protected:
00094 t_LogList m_LogList;
00095 };
00096
00097 };
00098
00099
00100 #include "unit_tests/wutil_log_unittests.h"
00101
00102 #endif // _WUTIL_LOG_H_
00103