PythonでWindowsイベントログを作成する方法
2021-02-24 06:41Windowsイベントビューアへのイベントログの書き込みに問題があります。 アプリケーションとサービスログ
メニューでカスタムイベントログを登録したいのですが、Pythonで登録する必要がありません(この場合はPyWin32を使用しています)。基本的に、PowershellのNew-EventLog
にカスタムログを登録できますが、Pythonで登録したいと思います。
これらは私が行ったいくつかの試みです:
- Powershellの
New-EventLog
を使用してイベントログを作成します:
New-EventLog -LogName
- Pythonで、登録されたログ名でハンドラーを開きます:
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でこれを行う方法を誰かに教えてもらえますか?
1 #
これについての私の現在の理解の完全なコードを以下に投稿します。
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)