log4shib 2.0.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 _LOG4SHIB_NTEVENTLOGAPPENDER_HH
8#define _LOG4SHIB_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 LOG4SHIB_UNDEFINE_NOGDI
19# endif
20
21# ifndef WIN32_LEAN_AND_MEAN
22# define WIN32_LEAN_AND_MEAN
23# define LOG4SHIB_UNDEFINE_WIN32_LEAN_AND_MEAN
24# endif
25
26# include <windows.h>
27
28# ifdef LOG4SHIB_UNDEFINE_NOGDI
29# undef NOGDI
30# endif
31
32# ifdef LOG4SHIB_UNDEFINE_WIN32_LEAN_AND_MEAN
33# undef WIN32_LEAN_AND_MEAN
34# endif
35
36#endif // done dealing with ERROR #define
37
40
41namespace log4shib {
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
70 protected:
71
72 WORD getCategory(Priority::Value priority);
73 WORD getType(Priority::Value priority);
74 HKEY regGetKey(TCHAR *subkey, DWORD *disposition);
75 void regSetString(HKEY hkey, const TCHAR *name, const TCHAR *value);
76 void regSetDword(HKEY hkey, const TCHAR *name, DWORD value);
77 void addRegistryInfo(const char *source);
78
79 virtual void open();
80
85 virtual void _append(const LoggingEvent& event);
86
88 std::string _strSourceName;
89 };
90}
91
92#else // WIN32
93#error NTEventLoggAppender is not available on on Win32 platforms
94#endif // WIN32
95
96#endif // _LOG4SHIB_NTEVENTLOGAPPENDER_HH
97
#define LOG4SHIB_EXPORT
Definition Export.hh:11
LayoutAppender(const std::string &name)
Definition LayoutAppender.cpp:15
virtual bool reopen()
Calls open() and close()
Definition NTEventLogAppender.cpp:39
std::string _strSourceName
Definition NTEventLogAppender.hh:88
virtual void _append(const LoggingEvent &event)
Sends a LoggingEvent to NT Event log.
Definition NTEventLogAppender.cpp:45
HKEY regGetKey(TCHAR *subkey, DWORD *disposition)
Definition NTEventLogAppender.cpp:97
void regSetString(HKEY hkey, const TCHAR *name, const TCHAR *value)
Definition NTEventLogAppender.cpp:105
WORD getCategory(Priority::Value priority)
Convert log4shib Priority to an EventLog category.
Definition NTEventLogAppender.cpp:61
virtual void open()
Definition NTEventLogAppender.cpp:24
HANDLE _hEventSource
Definition NTEventLogAppender.hh:87
NTEventLogAppender(const std::string &name, const std::string &sourceName)
Instantiate an NTEventLogAppender with given name and source.
Definition NTEventLogAppender.cpp:11
void regSetDword(HKEY hkey, const TCHAR *name, DWORD value)
Definition NTEventLogAppender.cpp:109
void addRegistryInfo(const char *source)
Definition NTEventLogAppender.cpp:116
virtual void close()
Release any resources allocated within the appender such as file handles, network connections,...
Definition NTEventLogAppender.cpp:32
WORD getType(Priority::Value priority)
Convert log4shib Priority to an EventLog type.
Definition NTEventLogAppender.cpp:71
int Value
The type of Priority Values.
Definition Priority.hh:84
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