# Generate a base file name import os import time import win32api import win32evtlog def BackupClearLog(logType): datePrefix = time.strftime("%Y%m%d", time.localtime(time.time())) retry = 0 while True: # file exists index = "" if retry == 0 else f"-{retry}" fname = os.path.join( win32api.GetTempPath(), f"{datePrefix}{index}-{logType}.evt", ) if not os.path.exists(fname): break retry += 1 # OK - have unique file name. try: hlog = win32evtlog.OpenEventLog(None, logType) except win32evtlog.error as details: print("Could not open the event log", details) return try: if win32evtlog.GetNumberOfEventLogRecords(hlog) == 0: print("No records in event log %s - not backed up" % logType) return win32evtlog.ClearEventLog(hlog, fname) print(f"Backed up {logType} log to {fname}") finally: win32evtlog.CloseEventLog(hlog) if __name__ == "__main__": BackupClearLog("Application") BackupClearLog("System") BackupClearLog("Security")