瀏覽代碼

Make WrapLogger work more reliably for subprocess calls

Hamilton Turner 11 年之前
父節點
當前提交
c61c1a0a55
共有 1 個文件被更改,包括 8 次插入0 次删除
  1. 8 0
      toolset/benchmark/utils.py

+ 8 - 0
toolset/benchmark/utils.py

@@ -22,6 +22,14 @@ class WrapLogger():
   def __getattr__(self, name):
     return getattr(self.file, name)
 
+  def __del__(self):
+    """Grabs any output that was written directly to the file (e.g. bypassing 
+    the write method). Subprocess.call, Popen, etc have a habit of accessing 
+    the file directly for faster writing. See http://bugs.python.org/issue1631
+    """
+    self.file.seek(0)
+    for line in self.file.readlines():
+      self.logger.log(self.level, line.rstrip('\n'))
 
 class Header():
   """