log4cpp 1.1
Loading...
Searching...
No Matches
NTEventLogAppender.hh
Go to the documentation of this file.
1/*
2 * NTEventLogAppender.hh
3 *
4 * See the COPYING file for the terms of usage and distribution.
5 */
6
7#ifndef _LOG4CPP_NTEVENTLOGAPPENDER_HH
8#define _LOG4CPP_NTEVENTLOGAPPENDER_HH
9
10#ifdef WIN32 // only available on Win32
11
12// deal with ERROR #define
13// N.B. This #includes windows.h with NOGDI and WIN32_LEAN_AND_MEAN #defined.
14// If this is not what the user wants, #include windows.h before this file.
15#ifndef _WINDOWS_
16# ifndef NOGDI
17# define NOGDI // this will circumvent the ERROR #define in windows.h
18# define LOG4CPP_UNDEFINE_NOGDI
19# endif
20
21# ifndef WIN32_LEAN_AND_MEAN
22# define WIN32_LEAN_AND_MEAN
23# define LOG4CPP_UNDEFINE_WIN32_LEAN_AND_MEAN
24# endif
25
26# include <windows.h>
27
28# ifdef LOG4CPP_UNDEFINE_NOGDI
29# undef NOGDI
30# endif
31
32# ifdef LOG4CPP_UNDEFINE_WIN32_LEAN_AND_MEAN
33# undef WIN32_LEAN_AND_MEAN
34# endif
35
36#endif // done dealing with ERROR #define
37
40
41namespace log4cpp {
42
53 public:
54
60 NTEventLogAppender(const std::string& name, const std::string& sourceName);
61 virtual ~NTEventLogAppender();
62
66 virtual bool reopen();
67
68 virtual void close();
69
74 virtual bool requiresLayout() const;
75
76 virtual void setLayout(Layout* layout);
77
78 protected:
79
80 WORD getCategory(Priority::Value priority);
81 WORD getType(Priority::Value priority);
82 HKEY regGetKey(TCHAR *subkey, DWORD *disposition);
83 void regSetString(HKEY hkey, TCHAR *name, TCHAR *value);
84 void regSetDword(HKEY hkey, TCHAR *name, DWORD value);
85 void addRegistryInfo(const char *source);
86
87 virtual void open();
88
93 virtual void _append(const LoggingEvent& event);
94
96 std::string _strSourceName;
97 };
98}
99
100#else // WIN32
101#error NTEventLoggAppender is not available on on Win32 platforms
102#endif // WIN32
103
104#endif // _LOG4CPP_NTEVENTLOGAPPENDER_HH
105
#define LOG4CPP_EXPORT
Definition: Export.hh:26
AppenderSkeleton is a helper class, simplifying implementation of Appenders: it already takes care of...
Definition: AppenderSkeleton.hh:24
Extend this abstract class to create your own log layout format.
Definition: Layout.hh:22
NTEventLogAppender is an Appender that sends LoggingEvents to the Windows event log.
Definition: NTEventLogAppender.hh:52
HANDLE _hEventSource
Definition: NTEventLogAppender.hh:95
std::string _strSourceName
Definition: NTEventLogAppender.hh:96
int Value
The type of Priority Values.
Definition: Priority.hh:85
The top level namespace for all 'Log for C++' types and classes.
Definition: AbortAppender.hh:16
The internal representation of logging events.
Definition: LoggingEvent.hh:32