# Generate a base file name import time, os import win32api import win32evtlog def BackupClearLog(logType): datePrefix = time.strftime("%Y%m%d", time.localtime(time.time())) fileExists = 1 retry = 0 while fileExists: if retry == 0: index = "" else: index = "-%d" % retry try: fname = os.path.join(win32api.GetTempPath(), "%s%s-%s" % (datePrefix, index, logType) + ".evt") os.stat(fname) except os.error: fileExists = 0 retry = retry + 1 # OK - have unique file name. try: hlog = win32evtlog.OpenEventLog(None, logType) except win32evtlogutil.error, 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 "Backed up %s log to %s" % (logType, fname) finally: win32evtlog.CloseEventLog(hlog) if __name__=='__main__': BackupClearLog("Application") BackupClearLog("System") BackupClearLog("Security")