我在将事件日志写入Windows Event Viewer时遇到问题。我想在Applications and Services Logs
菜单下注册一个自定义事件日志,但是我不知道要在Python中做(在这种情况下,我正在使用PyWin32)。基本上,我们可以向Powershell的New-EventLog
注册一个自定义日志,但是我想用Python来完成。
这些是我做过的一些尝试:
New-EventLog
创建事件日志: New-EventLog -LogName <Log Name> -Source <Source>
import win32evtlog
hand = win32evtlog.OpenEventLog(None, 'CustomRegisteredEventLog')
# then write to Event Log
win32evtlog.ReportEvent(hand, win32evtlog.EVENTLOG_INFORMATION_TYPE, 0, 0, None, ['some message'], None)
上述步骤实际上有效,日志已成功提交到事件日志,但是我仍然需要使用Python注册事件日志。谁能指导我如何在Python上做到这一点?
答案 0 :(得分:0)
我在下面为您发布了我目前对此理解的完整代码。
import win32evtlogutil
import win32evtlog
import sys
print("Python {0} on {1}".format(sys.version,sys.platform))
variable = ["x,","y","z"]
App_Name = "Python test"
App_Event_ID = 10001
App_Event_Category = 90
#App_Event_Type = win32evtlog.EVENTLOG_WARNING_TYPE
App_Event_Str = ["scanned: {}".format(var) for var in variable]
App_Event_Data= b"xyz"
'''
win32evtlogutil.ReportEvent(ApplicationName, EventID, EventCategory,EventType,Inserts, Data, SID)
'''
win32evtlogutil.ReportEvent(App_Name,App_Event_ID, eventCategory= App_Event_Category,
eventType=win32evtlog.EVENTLOG_INFORMATION_TYPE,
strings=App_Event_Str,data=App_Event_Data)