I often have a need to log my progress when doing a repetitive task.  Logging allows me to continue where I left off if execution is halted (for example, perhaps my VPS server was rebooted by my host).My current working solution is a bit ad hock.  Any input on improving this would be appreciated:class RepeatingTask(object):    def __init__(self, first, logfile):        self.current = first        self.logfile = logfile    def page(self):        self.process_request()        self.increment()        self.log_progress()    def process_request(self):        # do processing here...         pass    def increment(self):        # set self.current = next item for processing         # when items are exhausted, set self.current=None        pass    def log_progress(self):        if self.current is None:            os.remove(self.logfile)        else:            with open(self.logfile, 'w') as logfile:                logfile.write(json.dumps([[current,key-xyz],                                          [self.current,self.val_abc]]))    def resume(self):        try:            with open(self.logfile, 'r') as logfile:                content = logfile.read()        except IOError:            return False        content = json.loads(content)        content = dict(zip(content[0],content[1]))        self.current = content['current']        self.val_abc = content['key-xyz']        return Trueif __name__ == __main__:    task_object = RepeatingTask(first_item_to_process,/path/to/logfile)    if task_object.resume():        print Resuming progress, current:, task_object.current    else:        print Starting freash, current:, task_object.current    while task_object.current is not None:        task_object.page()        # do some work        print Next:, task_object.current
Proper way to log progress and resume in Python
python;logging