summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2009-08-02 15:54:22 (GMT)
committerSteven Knight <knight@baldmt.com>2009-08-02 15:54:22 (GMT)
commit4bce55bf34b74d453971af4bccaeba1355d052e0 (patch)
tree8ec25e6272ca31fdb3f37adab823dbce149a7130 /src
parentde0692d145bf19f29c35ea621960be271f02b518 (diff)
downloadSCons-4bce55bf34b74d453971af4bccaeba1355d052e0.zip
SCons-4bce55bf34b74d453971af4bccaeba1355d052e0.tar.gz
SCons-4bce55bf34b74d453971af4bccaeba1355d052e0.tar.bz2
Add optional time stamping and elapsed time reporting to Trace().
Diffstat (limited to 'src')
-rw-r--r--src/engine/SCons/Debug.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/engine/SCons/Debug.py b/src/engine/SCons/Debug.py
index 8aa0c21..633f6ea 100644
--- a/src/engine/SCons/Debug.py
+++ b/src/engine/SCons/Debug.py
@@ -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()