Add optional time stamping and elapsed time reporting to Trace().
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sun, 2 Aug 2009 15:54:22 +0000 (15:54 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sun, 2 Aug 2009 15:54:22 +0000 (15:54 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@4316 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/engine/SCons/Debug.py

index 8aa0c218d01f2f646cee21826d8bca65c8507411..633f6ea460528aa73856e3b2fdfb86d7b310a3c6 100644 (file)
@@ -34,6 +34,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 import os
 import string
 import sys
+import time
 
 # Recipe 14.10 from the Python Cookbook.
 try:
@@ -196,14 +197,24 @@ if sys.platform == 'win32':
 else:
     TraceDefault = '/dev/tty'
 
-def Trace(msg, file=None, mode='w'):
+TimeStampDefault = None
+StartTime = time.time()
+PreviousTime = StartTime
+
+def Trace(msg, file=None, mode='w', tstamp=None):
     """Write a trace message to a file.  Whenever a file is specified,
     it becomes the default for the next call to Trace()."""
     global TraceDefault
+    global TimeStamp
+    global PreviousTime
     if file is None:
         file = TraceDefault
     else:
         TraceDefault = file
+    if tstamp is None:
+        tstamp = TimeStampDefault
+    else:
+        TimeStampDefault = tstamp
     try:
         fp = TraceFP[file]
     except KeyError:
@@ -212,6 +223,10 @@ def Trace(msg, file=None, mode='w'):
         except TypeError:
             # Assume we were passed an open file pointer.
             fp = file
+    if tstamp:
+        now = time.time()
+        fp.write('%8.4f %8.4f:  ' % (now - StartTime, now - PreviousTime))
+        PreviousTime = now
     fp.write(msg)
     fp.flush()