我有一个简单的 python 脚本,将在 Windows 服务器上运行,我想将整个脚本中的特定事件记录到 Windows 事件日志中。有谁有一个简单而精确的写入 Windows 事件日志的示例,以便我可以从事件查看器查看该事件。我已阅读 pywin32 库的文档,但找不到任何明确的示例。我尝试使用以下方法构建事件:
win32evtlogutil.ReportEvent(ApplicationName, EventID, EventCategory,
EventType, Inserts, Data, SID)
我没有成功,有人可以更深入地解释一下 ReportEvent 吗?
一个简单的例子:
>>> import sys
>>> import time
>>> import win32evtlog
>>> import win32evtlogutil
>>>
>>>
>>> "Python {:s} on {:s}".format(sys.version, sys.platform)
'Python 3.5.4 (v3.5.4:3f56838, Aug 8 2017, 02:17:05) [MSC v.1900 64 bit (AMD64)] on win32'
>>>
>>> DUMMY_EVT_APP_NAME = "Dummy Application"
>>> DUMMY_EVT_ID = 7040 # Got this from another event
>>> DUMMY_EVT_CATEG = 9876
>>> DUMMY_EVT_STRS = ["Dummy event string {:d}".format(item) for item in range(5)]
>>> DUMMY_EVT_DATA = b"Dummy event data"
>>>
>>> "Current time: {:s}".format(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
'Current time: 2018-07-18 20:03:08'
>>>
>>> win32evtlogutil.ReportEvent(
... DUMMY_EVT_APP_NAME, DUMMY_EVT_ID, eventCategory=DUMMY_EVT_CATEG,
... eventType=win32evtlog.EVENTLOG_WARNING_TYPE, strings=DUMMY_EVT_STRS,
... data=DUMMY_EVT_DATA)
>>>
Output:
您可以看到我从代码输入的值与(上)图像中的事件字段之间的对应关系事件查看器 (mmc) 窗户。
win32evtlogutil.ReportEvent是其一部分[GitHub]: mhammond/pywin32 - 适用于 Windows 的 Python (pywin32) 扩展,这是一个Python包装结束WINAPIs.
文档(WiP)可以在以下位置找到:[GitHub.MHammond]:Win32 扩展的 Python 帮助 (or [ME.TimGolden]:Python for Win32 扩展帮助).
您需要了解的所有信息均在[MS.Docs]:ReportEventW 函数, 哪一个是WINAPI用于完成此任务。请务必仔细阅读(以及其他一些内容)URL是它引用的),以便更熟悉参数、它们的值可能是什么以及其他信息。
确保不要滥用(包括测试),否则您可能最终会被大量垃圾数据污染事件日志。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)