The NTEventLogHandler class, located in the
logging.handlers module, supports sending logging messages to
a local Windows NT, Windows 2000 or Windows XP event log. Before you
can use it, you need Mark Hammond's Win32 extensions for Python
Returns a new instance of the NTEventLogHandler class. The
appname is used to define the application name as it appears in the
event log. An appropriate registry entry is created using this name.
The dllname should give the fully qualified pathname of a .dll or .exe
which contains message definitions to hold in the log (if not specified,
'win32service.pyd' is used - this is installed with the Win32
extensions and contains some basic placeholder message definitions.
Note that use of these placeholders will make your event logs big, as the
entire message source is held in the log. If you want slimmer logs, you have
to pass in the name of your own .dll or .exe which contains the message
definitions you want to use in the event log). The logtype is one of
At this point, you can remove the application name from the registry as a
source of event log entries. However, if you do this, you will not be able
to see the events as you intended in the Event Log Viewer - it needs to be
able to access the registry to get the .dll name. The current version does
not do this (in fact it doesn't do anything).
Determines the message ID, event category and event type, and then logs the
message in the NT event log.
Returns the event category for the record. Override this if you
want to specify your own categories. This version returns 0.
Returns the event type for the record. Override this if you want
to specify your own types. This version does a mapping using the
handler's typemap attribute, which is set up in __init__()
to a dictionary which contains mappings for DEBUG,
INFO, WARNING, ERROR and
CRITICAL. If you are using your own levels, you will either need
to override this method or place a suitable dictionary in the
handler's typemap attribute.
Returns the message ID for the record. If you are using your
own messages, you could do this by having the msg passed to the
logger being an ID rather than a format string. Then, in here,
you could use a dictionary lookup to get the message ID. This
version returns 1, which is the base message ID in
See About this document... for information on suggesting changes.