Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在服务器2012等上登录到windows事件日志_Python_Windows_Logging_Event Log - Fatal编程技术网

Python 在服务器2012等上登录到windows事件日志

Python 在服务器2012等上登录到windows事件日志,python,windows,logging,event-log,Python,Windows,Logging,Event Log,Pythonlogging模块有一个NTEventLogHandler类,但其描述暗示它仅适用于windows NT、windows 2000和windows XP 我对win-7的理解是: Traceback (most recent call last): File "app.py", line 414, in <module> logutil.init_booster_log() File "E:\app\logutil.py", line 89, in ini

Python
logging
模块有一个
NTEventLogHandler
类,但其描述暗示它仅适用于windows NT、windows 2000和windows XP

我对win-7的理解是:

Traceback (most recent call last):
  File "app.py", line 414, in <module>
    logutil.init_booster_log()
  File "E:\app\logutil.py", line 89, in init_booster_log
    system_handler = _get_system_handler()
  File "E:\app\logutil.py", line 68, in _get_system_handler
    handler = logging.handlers.NTEventLogHandler("Cool App")
  File "C:\Python27\lib\logging\handlers.py", line 971, in __init__
    self._welu.AddSourceToRegistry(appname, dllname, logtype)
  File "C:\Python27\lib\site-packages\win32\lib\win32evtlogutil.py", line 35, in AddSourceToRegistry
    "SYSTEM\\CurrentControlSet\\Services\\EventLog\\%s\\%s" % (eventLogType, appName))
error: (5, 'RegCreateKey', 'Access is denied.')
(5, 'RegCreateKey', 'Access is denied.')
回溯(最近一次呼叫最后一次):
文件“app.py”,第414行,在
logutil.init_booster_log()
文件“E:\app\logutil.py”,第89行,在初始化日志中
系统处理程序=\u获取\u系统处理程序()
文件“E:\app\logutil.py”,第68行,在\u get\u system\u处理程序中
handler=logging.handlers.NTEventLogHandler(“酷应用”)
文件“C:\Python27\lib\logging\handlers.py”,第971行,在\uuu init中__
self.\u welu.AddSourceToRegistry(appname、dllname、logtype)
AddSourceToRegistry中第35行的文件“C:\Python27\lib\site packages\win32\lib\win32evtlogutil.py”
“系统\\CurrentControlSet\\Services\\EventLog\\%s\\%s”%(eventLogType,appName))
错误:(5,“RegCreateKey”,“访问被拒绝”。)
(5,“RegCreateKey”,“访问被拒绝”。)

windows server 2012是否有可用的替换
处理程序

如果没有防病毒,它应该可以正常工作,因为某种原因,它禁止我的脚本写入注册表(即使脚本是以管理员权限运行的)


原来
logging.handlers.NTEventLogHandler
在Windows 7和Windows Server 2012上运行良好。

NTEventLogHandler
仍然在Windows 7到10中运行。我使用应用程序名“Python”来编写一些事件。然后,我通过运行
wevtutil qe应用程序/f:text/q:“*[System[Provider[@Name='Python']]]”验证了它们的编写过程。
@eryksun我已经发布了我得到的回溯,但像和这样的API仍然可用,创建需要以管理员身份运行。另外,如果您使用虚拟环境,则提供程序密钥将使用环境中指向“win32service.pyd”的路径,但您可以使用
dllname
参数指定备用路径。@eryksun我已重试,并且成功。代码与作为管理员运行的代码相同。奇怪。。。