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 #include "wgui_include_config.h"
00026 #include "wutil_log.h"
00027 #include <fstream>
00028
00029
00030 namespace wUtil
00031 {
00032
00033 CLog::t_LogList CLog::GetLogEntries(unsigned int iSeverity) const
00034 {
00035 t_LogList OutLog;
00036 for (t_LogList::const_iterator iter = m_LogList.begin(); iter != m_LogList.end(); ++iter)
00037 {
00038 if (iSeverity == 0 || iter->m_iSeverity == iSeverity)
00039 {
00040 OutLog.push_back(*iter);
00041 }
00042 }
00043 return OutLog;
00044 }
00045
00046
00047 CLog::t_LogList CLog::GetLogEntries(unsigned int iHighSeverity, unsigned int iLowSeverity) const
00048 {
00049 t_LogList OutLog;
00050 for (t_LogList::const_iterator iter = m_LogList.begin(); iter != m_LogList.end(); ++iter)
00051 {
00052 if (iter->m_iSeverity >= iHighSeverity || iter->m_iSeverity <= iLowSeverity)
00053 {
00054 OutLog.push_back(*iter);
00055 }
00056 }
00057 return OutLog;
00058 }
00059
00060
00061 void CLog::WriteToFile(const std::wstring& sFilename, bool bAppend, const std::wstring& sLogHeader) const
00062 {
00063 std::wofstream File;
00064 if (bAppend)
00065 {
00066 File.open(stdex::ToMbString(sFilename).c_str(), std::ios::app);
00067 }
00068 else
00069 {
00070 File.open(stdex::ToMbString(sFilename).c_str(), std::ios::out | std::ios::trunc);
00071 }
00072 if (File.is_open())
00073 {
00074 File << sLogHeader << std::endl;
00075 for (t_LogList::const_iterator iter = m_LogList.begin(); iter != m_LogList.end(); ++iter)
00076 {
00077 wchar_t sTime[100];
00078 mbstowcs(sTime, asctime(localtime(&iter->m_TimeStamp)), 100);
00079 std::wstring sTimeStamp(sTime);
00080 File << sTimeStamp.substr(0, sTimeStamp.size() - 1) << L" [ " << iter->m_iSeverity << L" ] : " << iter->m_sMessage << std::endl;
00081 }
00082 File.close();
00083 }
00084 }
00085
00086 }
00087
00088