diff options
author | Lars Wirzenius <liw@xander> | 2011-02-04 22:21:22 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@xander> | 2011-02-04 22:21:22 +0200 |
commit | 9ec4c1dab031f14041dd363428100136f7079fa3 (patch) | |
tree | 9d682df5eb9a5be7068b874810b2fe9a601579b8 /tracing.py | |
parent | 67aca5f5bc86673a59ccbadc5ec3c3e4984b52a0 (diff) | |
parent | 7c08f99a8f0e8d12afb8adb6966f4bb3262c8697 (diff) | |
download | python-tracing-9ec4c1dab031f14041dd363428100136f7079fa3.tar.gz |
Merge speed test and optimizations.
Diffstat (limited to 'tracing.py')
-rw-r--r-- | tracing.py | 22 |
1 files changed, 14 insertions, 8 deletions
@@ -49,6 +49,7 @@ import traceback trace_patterns = [] +trace_cache = set() def trace_add_pattern(pattern): @@ -57,16 +58,21 @@ def trace_add_pattern(pattern): def trace_clear_patterns(): del trace_patterns[:] + trace_cache.clear() -def trace(msg): +def trace(msg, *args): if trace_patterns: frames = traceback.extract_stack(limit=2) filename, lineno, funcname, text = frames[0] - filename = os.path.basename(filename) - for pattern in trace_patterns: - if pattern in filename: - logging.debug('%s:%s:%s: %s' % - (filename, lineno, funcname, msg)) - break - + log_it = filename in trace_cache + if not log_it: + for pattern in trace_patterns: + if pattern in filename: + log_it = True + trace_cache.add(filename) + break + if log_it: + filename = os.path.basename(filename) + msg = msg % args + logging.debug('%s:%s:%s: %s' % (filename, lineno, funcname, msg)) |