如何解决如何使用Python创建Windows事件日志
我在将事件日志写入Windows Event Viewer时遇到问题。我想在Applications and Services Logs
菜单下注册一个自定义事件日志,但是我不知道要在Python中做(在这种情况下,我正在使用PyWin32)。基本上,我们可以向Powershell的New-EventLog
注册一个自定义日志,但是我想用Python来完成。
这些是我做过的一些尝试:
- 使用Powershell的
New-EventLog
创建事件日志:
New-EventLog -LogName <Log Name> -Source <Source>
- 在Python中,打开一个注册了日志名称的处理程序:
import win32evtlog
hand = win32evtlog.OpenEventLog(None,'CustomRegisteredEventLog')
# then write to Event Log
win32evtlog.ReportEvent(hand,win32evtlog.EVENTLOG_INFORMATION_TYPE,None,['some message'],None)
上述步骤实际上有效,日志已成功提交到事件日志,但是我仍然需要使用Python注册事件日志。谁能指导我如何在Python上做到这一点?
解决方法
我在下面为您发布了我目前对此理解的完整代码。
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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。