import os import sys class Logger(object): def __init__(self, fpath): self.console = sys.stdout self.file = open(fpath, "w") def __del__(self): self.close() def __enter__(self): pass def __exit__(self, *args): self.close() def write(self, msg): self.console.write(msg) if self.file is not None: self.file.write(msg) else: self.console.write("Warning: Log file is None") def flush(self): self.console.flush() if self.file is not None: self.file.flush() os.fsync(self.file.fileno()) else: self.console.write("Warning: Log file is None") def close(self): self.console.close() if self.file is not None: self.file.close()