]> mj.ucw.cz Git - moe.git/blobdiff - t/moe/log.py
Config parser complete, but completely untested.
[moe.git] / t / moe / log.py
index 295fac35f69c206c7e081ae926559cae5e1d1b25..592fb846b047bd7b1952c3e6866080aa1074b67d 100644 (file)
@@ -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)
@@ -25,4 +36,12 @@ class MoeLog:
        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)