00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00022 #ifndef _LOG4CPLUS_NT_EVENT_LOG_APPENDER_HEADER_
00023 #define _LOG4CPLUS_NT_EVENT_LOG_APPENDER_HEADER_
00024
00025 #include "dcmtk/oflog/config.h"
00026 #include "dcmtk/oflog/appender.h"
00027
00028 #if defined(_WIN32)
00029 # if ! defined (LOG4CPLUS_HAVE_NT_EVENT_LOG)
00030 # error "Your platform does not support NT event log."
00031 # else
00032
00033
00034 namespace log4cplus {
00035
00039 class LOG4CPLUS_EXPORT NTEventLogAppender : public Appender {
00040 public:
00041
00042 NTEventLogAppender(const log4cplus::tstring& server,
00043 const log4cplus::tstring& log,
00044 const log4cplus::tstring& source);
00045 NTEventLogAppender(const log4cplus::helpers::Properties properties, tstring& error);
00046
00047
00048 virtual ~NTEventLogAppender();
00049
00050
00051 virtual void close();
00052
00053 protected:
00054 virtual void append(const spi::InternalLoggingEvent& event);
00055 virtual WORD getEventType(const spi::InternalLoggingEvent& event);
00056 virtual WORD getEventCategory(const spi::InternalLoggingEvent& event);
00057 void init();
00058
00059
00060
00061
00062 void addRegistryInfo();
00063
00064
00065 log4cplus::tstring server;
00066 log4cplus::tstring log;
00067 log4cplus::tstring source;
00068 HANDLE hEventLog;
00069 SID* pCurrentUserSID;
00070
00071 private:
00072
00073 NTEventLogAppender(const NTEventLogAppender&);
00074 NTEventLogAppender& operator=(const NTEventLogAppender&);
00075 };
00076
00077 }
00078
00079 #endif // LOG4CPLUS_HAVE_NT_EVENT_LOG
00080 #endif // _WIN32
00081 #endif //_LOG4CPLUS_NT_EVENT_LOG_APPENDER_HEADER_