Custom Event Log Writing
There will be cases where you need
better facilities than those provided by the
servicemanager
module. The primary reason is that
you will require your own set of messages, tailored for your
application. In this scenario, you need the message compiler from
Microsoft Visual C++ to create your own custom message texts and IDs.
Registering with the Event Log
The Event Log doesn’t store the full text of each message in the log; instead, when the text is needed, it uses the ID of the message to look it up from a DLL or EXE file nominated by the application. This means you need to tell the Event Log where your messages are located.
Applications register with the Event Log by writing an entry to the Event Log’s registry. If you open the registry editor, you can view all applications providing Event Log data by looking under the key KLM\SYSTEM\CurrentControlSet\Services\EventLog.
Fortunately, the win32evtlogutil
module has a
utility function for registering your application. As the registry is
persistent, it’s necessary to register your application only
when it’s installed; however, some applications choose to do
this each time they start.
Any EXE or DLL can hold messages for the Event Log Viewer. The text for messages are typically created with a text editor, and the “message compiler” (supplied with Microsoft Visual C++) compiles them. When the application is linked, the compiled messages are inserted into the final executable. However, this doesn’t help you use ...
Get Python Programming On Win32 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.