Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

nteventlogappender.h

Go to the documentation of this file.
00001 // Module:  Log4CPLUS
00002 // File:    nteventlogappender.h
00003 // Created: 4/2003
00004 // Author:  Michael CATANZARITI
00005 //
00006 // Copyright (C) Michael CATANZARITI  All rights reserved.
00007 //
00008 // This software is published under the terms of the Apache Software
00009 // License version 1.1, a copy of which has been included with this
00010 // distribution in the LICENSE.APL file.
00011 //
00012 
00015 #ifndef _LOG4CPLUS_NT_EVENT_LOG_APPENDER_HEADER_
00016 #define _LOG4CPLUS_NT_EVENT_LOG_APPENDER_HEADER_
00017 
00018 #include <log4cplus/config.h>
00019 #if defined(_WIN32)
00020 
00021 #include <log4cplus/appender.h>
00022 
00023 
00024 namespace log4cplus {
00025 
00029     class LOG4CPLUS_EXPORT NTEventLogAppender : public Appender {
00030     public:
00031       // ctors
00032         NTEventLogAppender(const log4cplus::tstring& server, 
00033                            const log4cplus::tstring& log, 
00034                            const log4cplus::tstring& source);
00035         NTEventLogAppender(const log4cplus::helpers::Properties properties);
00036 
00037       // dtor
00038         virtual ~NTEventLogAppender();
00039 
00040       // public Methods
00041         virtual void close();
00042 
00043     protected:
00044         virtual void append(const spi::InternalLoggingEvent& event);
00045         virtual WORD getEventType(const spi::InternalLoggingEvent& event);
00046         virtual WORD getEventCategory(const spi::InternalLoggingEvent& event);
00047         void init();
00048 
00049         /*
00050          * Add this source with appropriate configuration keys to the registry.
00051          */
00052         void addRegistryInfo();
00053 
00054       // Data
00055         log4cplus::tstring server;
00056         log4cplus::tstring log;
00057         log4cplus::tstring source;
00058         HANDLE hEventLog;
00059         SID* pCurrentUserSID;
00060 
00061     private:
00062       // Disallow copying of instances of this class
00063         NTEventLogAppender(const NTEventLogAppender&);
00064         NTEventLogAppender& operator=(const NTEventLogAppender&);
00065     };
00066 
00067 } // end namespace log4cplus
00068 
00069 #endif // _WIN32
00070 #endif //_LOG4CPLUS_NT_EVENT_LOG_APPENDER_HEADER_
00071 

Generated on Mon Feb 9 09:10:30 2004 for log4cplus by doxygen 1.3.2