import logging import logging.handlers class myClass(object): def __init__(self): self.name = "Old Name" def __str__(self): return self.name logger = logging.getLogger() fh = logging.FileHandler('log.txt', mode='w') fh.setLevel(0) # log everything to file mh = logging.handlers.MemoryHandler(1024, target=fh) logger.addHandler(mh) logger.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(name)s - %(filename)s:%(lineno)s - %(levelname)s - %(message)s') fh.setFormatter(formatter) myObj = myClass() logging.debug("Old myObject: %s", myObj) myObj.name = "New Name" logging.debug("New myObject: %s", myObj) print "Done"