00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "CArchLogWindows.h"
00016 #include "CArchMiscWindows.h"
00017 #include <string.h>
00018
00019
00020
00021
00022
00023 CArchLogWindows::CArchLogWindows() : m_eventLog(NULL)
00024 {
00025
00026 }
00027
00028 CArchLogWindows::~CArchLogWindows()
00029 {
00030
00031 }
00032
00033 void
00034 CArchLogWindows::openLog(const char* name)
00035 {
00036 if (m_eventLog == NULL && !CArchMiscWindows::isWindows95Family()) {
00037 m_eventLog = RegisterEventSource(NULL, name);
00038 }
00039 }
00040
00041 void
00042 CArchLogWindows::closeLog()
00043 {
00044 if (m_eventLog != NULL) {
00045 DeregisterEventSource(m_eventLog);
00046 m_eventLog = NULL;
00047 }
00048 }
00049
00050 void
00051 CArchLogWindows::showLog(bool)
00052 {
00053
00054 }
00055
00056 void
00057 CArchLogWindows::writeLog(ELevel level, const char* msg)
00058 {
00059 if (m_eventLog != NULL) {
00060
00061 WORD type;
00062 switch (level) {
00063 case kERROR:
00064 type = EVENTLOG_ERROR_TYPE;
00065 break;
00066
00067 case kWARNING:
00068 type = EVENTLOG_WARNING_TYPE;
00069 break;
00070
00071 default:
00072 type = EVENTLOG_INFORMATION_TYPE;
00073 break;
00074 }
00075
00076
00077
00078
00079
00080
00081
00082 ReportEvent(m_eventLog, type, static_cast<WORD>(level),
00083 0,
00084 NULL,
00085 0,
00086 strlen(msg) + 1,
00087 NULL,
00088 const_cast<char*>(msg));
00089 }
00090 }