| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- """Logger module: contains the logger class which creates and writes
- data to log files on disk"""
- import sys
- import time
- import math
- class Logger:
- """Logger class: """
-
- # built-ins
-
- def __init__(self, fileName="log"):
- """__init__(self)
- Logger constructor"""
- self.__timeStamp = 1
- self.__startTime = 0.0
- self.__logFile = None
- self.__logFileName = fileName
-
- # setters and getters
-
- def setTimeStamp(self, bool):
- """setTimeStamp(self, int)
- Toggle time stamp printing with log entries on and off"""
- self.__timeStamp = bool
- def getTimeStamp(self):
- """getTimeStamp(self)
- Return whether or not we are printing time stamps with log entries"""
- return(self.__timeStamp)
- # logging control
-
- def resetStartTime(self):
- """resetStartTime()
- Reset the start time of the log file for time stamps"""
- self.__startTime = time.time()
- def log(self, entryString):
- """log(self, string)
- Print the given string to the log file"""
- if (self.__logFile == None):
- self.__openLogFile()
- if (self.__timeStamp):
- self.__logFile.write(self.__getTimeStamp())
- self.__logFile.write(entryString + '\n')
-
- # logging functions
-
- def __openLogFile(self):
- """__openLogFile(self)
- Open a file for logging error/warning messages"""
- self.resetStartTime()
- t = time.localtime(self.__startTime)
- st = time.strftime("%m-%d-%Y-%H-%M-%S", t)
- logFileName = self.__logFileName + "." + st
- self.__logFile = open(logFileName, "w")
- def __closeLogFile(self):
- """__closeLogFile(self)
- Close the error/warning output file"""
- if (self.__logFile != None):
- self.__logFile.close()
- def __getTimeStamp(self):
- """__getTimeStamp(self)
- Return the offset between current time and log file startTime"""
- t = time.time()
- dt = t - self.__startTime
- if (dt >= 86400):
- days = int(math.floor(dt/86400))
- dt = dt%86400
- else:
- days = 0
- if (dt >= 3600):
- hours = int(math.floor(dt/3600))
- dt = dt%3600
- else:
- hours = 0
- if (dt >= 60):
- minutes = int(math.floor(dt/60))
- dt = dt%60
- else:
- minutes = 0
- seconds = int(math.ceil(dt))
- return("%02d:%02d:%02d:%02d: " % (days, hours, minutes, seconds) )
|