X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=t%2Fmoe%2Flog.py;h=592fb846b047bd7b1952c3e6866080aa1074b67d;hb=c861bd9c09d20e06533e122253bcd3bb94b0bef9;hp=0695b79dbad43d967a39f88aba96812c1cc81a6b;hpb=fdf195df30677b8552bb7fedc34f760120268a30;p=eval.git diff --git a/t/moe/log.py b/t/moe/log.py index 0695b79..592fb84 100644 --- a/t/moe/log.py +++ b/t/moe/log.py @@ -1,14 +1,25 @@ #!/usr/bin/env python import sys +import os +import traceback + +orig_stdout_fd = os.dup(1) +orig_stderr_fd = os.dup(2) +progress_file = os.fdopen(orig_stdout_fd, "w", 0) class MoeLog: def __init__(self): self.verbosity = 0 - self.progress_file = sys.stdout + self.progress_file = progress_file self.log_file = None + def open(self, name): + self.log_file = open(name, "w") + os.dup2(self.log_file.fileno(), 1) + os.dup2(self.log_file.fileno(), 2) + def say(self, msg): if self.log_file: self.log_file.write(msg) @@ -18,7 +29,19 @@ class MoeLog: self.log_file.write(msg) def progress(self, msg): - if self.progress: - self.progress.write(msg) + if self.progress_file: + self.progress_file.write(msg) + + def shout(self, msg): + self.say(msg) + self.progress(msg) + + def flush(self): + self.log_file.flush() default = MoeLog() + +def fatal_exception(): + os.dup2(orig_stderr_fd, 2) + traceback.print_exc() + sys.exit(1)