本文整理汇总了Python中win32evtlogutil.SafeFormatMessage方法的典型用法代码示例。如果您正苦于以下问题:Python win32evtlogutil.SafeFormatMessage方法的具体用法?Python win32evtlogutil.SafeFormatMessage怎么用?Python win32evtlogutil.SafeFormatMessage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类win32evtlogutil
的用法示例。
在下文中一共展示了win32evtlogutil.SafeFormatMessage方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: ReadLog
# 需要导入模块: import win32evtlogutil [as 别名]
# 或者: from win32evtlogutil import SafeFormatMessage [as 别名]
def ReadLog(computer, logType="Application", dumpEachRecord = 0):
# read the entire log back.
h=win32evtlog.OpenEventLog(computer, logType)
numRecords = win32evtlog.GetNumberOfEventLogRecords(h)
# print "There are %d records" % numRecords
num=0
while 1:
objects = win32evtlog.ReadEventLog(h, win32evtlog.EVENTLOG_BACKWARDS_READ|win32evtlog.EVENTLOG_SEQUENTIAL_READ, 0)
if not objects:
break
for object in objects:
# get it for testing purposes, but dont print it.
msg = win32evtlogutil.SafeFormatMessage(object, logType)
if object.Sid is not None:
try:
domain, user, typ = win32security.LookupAccountSid(computer, object.Sid)
sidDesc = "%s/%s" % (domain, user)
except win32security.error:
sidDesc = str(object.Sid)
user_desc = "Event associated with user %s" % (sidDesc,)
else:
user_desc = None
if dumpEachRecord:
print "Event record from %r generated at %s" % (object.SourceName, object.TimeGenerated.Format())
if user_desc:
print user_desc
try:
print msg
except UnicodeError:
print "(unicode error printing message: repr() follows...)"
print repr(msg)
num = num + len(objects)
if numRecords == num:
print "Successfully read all", numRecords, "records"
else:
print "Couldn't get all records - reported %d, but found %d" % (numRecords, num)
print "(Note that some other app may have written records while we were running!)"
win32evtlog.CloseEventLog(h)
示例2: test_basic
# 需要导入模块: import win32evtlogutil [as 别名]
# 或者: from win32evtlogutil import SafeFormatMessage [as 别名]
def test_basic(self):
logtype = 'Application'
elh = win32evtlog.OpenEventLog(None, logtype)
num_recs = win32evtlog.GetNumberOfEventLogRecords(elh)
try:
h = logging.handlers.NTEventLogHandler('test_logging')
except pywintypes.error as e:
if e.winerror == 5: # access denied
raise unittest.SkipTest('Insufficient privileges to run test')
raise
r = logging.makeLogRecord({'msg': 'Test Log Message'})
h.handle(r)
h.close()
# Now see if the event is recorded
self.assertLess(num_recs, win32evtlog.GetNumberOfEventLogRecords(elh))
flags = win32evtlog.EVENTLOG_BACKWARDS_READ | \
win32evtlog.EVENTLOG_SEQUENTIAL_READ
found = False
GO_BACK = 100
events = win32evtlog.ReadEventLog(elh, flags, GO_BACK)
for e in events:
if e.SourceName != 'test_logging':
continue
msg = win32evtlogutil.SafeFormatMessage(e, logtype)
if msg != 'Test Log Message\r\n':
continue
found = True
break
msg = 'Record not found in event log, went back %d records' % GO_BACK
self.assertTrue(found, msg=msg)
# Set the locale to the platform-dependent default. I have no idea
# why the test does this, but in any case we save the current locale
# first and restore it at the end.
示例3: __log_event
# 需要导入模块: import win32evtlogutil [as 别名]
# 或者: from win32evtlogutil import SafeFormatMessage [as 别名]
def __log_event(self, source, event):
""" Emits information about an event to the logfile for this monintor
"""
event_type = self.__event_types[event.EventType]
# we need to get the root source e.g. Application in Application/MyApplication
# to use with SafeFormatMessage
source = source.split("/")[0]
event_message = win32evtlogutil.SafeFormatMessage(event, source)
time_format = "%Y-%m-%d %H:%M:%SZ"
self._logger.emit_value(
"EventLog",
source,
extra_fields={
"Source": event.SourceName,
"RecordNumber": event.RecordNumber,
"TimeGenerated": time.strftime(
time_format, time.gmtime(int(event.TimeGenerated))
),
"TimeWritten": time.strftime(
time_format, time.gmtime(int(event.TimeWritten))
),
"Type": event_type,
"EventId": event.EventID,
"Category": event.EventCategory,
"EventMsg": event_message,
},
)