Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

NTEventLogAppender.hh

Go to the documentation of this file.
00001 /*
00002  * NTEventLogAppender.hh
00003  *
00004  * See the COPYING file for the terms of usage and distribution.
00005  */
00006 
00007 #ifndef _LOG4CPP_NTEVENTLOGAPPENDER_HH
00008 #define _LOG4CPP_NTEVENTLOGAPPENDER_HH
00009 
00010 #ifdef WIN32    // only available on Win32
00011 
00012 #include <log4cpp/Portability.hh>
00013 #include <log4cpp/AppenderSkeleton.hh>
00014 
00015 namespace log4cpp {
00016 
00026     class LOG4CPP_EXPORT NTEventLogAppender : public AppenderSkeleton {
00027     public:
00028 
00034         NTEventLogAppender(const std::string& name, const std::string& sourceName);
00035         virtual ~NTEventLogAppender();
00036 
00040         virtual bool reopen();
00041 
00042         virtual void close();
00043 
00048         virtual bool requiresLayout() const;
00049 
00050         virtual void setLayout(Layout* layout);
00051 
00052     protected:
00053         
00054         WORD getCategory(Priority::Value priority);
00055         WORD getType(Priority::Value priority);
00056         HKEY regGetKey(TCHAR *subkey, DWORD *disposition);
00057         void regSetString(HKEY hkey, TCHAR *name, TCHAR *value);
00058         void regSetDword(HKEY hkey, TCHAR *name, DWORD value);
00059         void addRegistryInfo(const char *source);
00060 
00061         virtual void open();
00062 
00067         virtual void _append(const LoggingEvent& event);
00068 
00069         HANDLE _hEventSource;
00070         std::string _strSourceName;
00071     };
00072 }
00073 
00074 #else // WIN32
00075 #error NTEventLoggAppender is not available on on Win32 platforms
00076 #endif  // WIN32
00077 
00078 #endif // _LOG4CPP_NTEVENTLOGAPPENDER_HH
00079 

Generated on Mon Oct 28 23:41:43 2002 for log4cpp by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002