How to have a feed of windows log event under windows?

寵の児 提交于 2019-12-04 22:52:39

Solution

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import win32evtlog # requires pywin32 pre-installed
import win32event

server = 'localhost' # name of the target computer to get event logs
logtype = 'System' # 'Application' # 'Security'
filehandler = win32evtlog.OpenEventLog(server,logtype)
eventhandler = win32event.CreateEvent(None, 1, 0, "wait")
flags = win32evtlog.EVENTLOG_FORWARDS_READ|win32evtlog.EVENTLOG_SEEK_READ
win32evtlog.NotifyChangeEventLog(filehandler, eventhandler)

cursorlog = win32evtlog.GetNumberOfEventLogRecords(filehandler)
cursorlog+=1
print("Go to : %s" % (cursorlog))        
while self.skip == False:

    #the timeout delay can be set to 0xFFFFFFF for infinite timeout
    result = win32event.WaitForSingleObject(eventhandler, 1)
    # Timeout
    if not result :

        readlog = win32evtlog.ReadEventLog(filehandler, flags, cursorlog)

        for event in readlog:
            print("%s : [%s] : %s" % (event.TimeGenerated.Format(), event.RecordNumber, event.SourceName))
        cursorlog+=len(readlog)
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!