## Demonstrates a "push" subscription with a callback function import win32evtlog query_text='*[System[Provider[@Name="Microsoft-Windows-Winlogon"]]]' def c(reason, context, evt): if reason==win32evtlog.EvtSubscribeActionError: print ('EvtSubscribeActionError') elif reason==win32evtlog.EvtSubscribeActionDeliver: print ('EvtSubscribeActionDeliver') else: print(('??? Unknown action ???', reason)) context.append(win32evtlog.EvtRender(evt, win32evtlog.EvtRenderEventXml)) return 0 evttext=[] s=win32evtlog.EvtSubscribe('System', win32evtlog.EvtSubscribeStartAtOldestRecord, Query='*', Callback=c, Context=evttext)