summary refs log tree commit diff
path: root/synapse/util/logutils.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2016-02-04 10:22:44 +0000
committerErik Johnston <erik@matrix.org>2016-02-08 14:26:45 +0000
commit2c1fbea5319db2c64fa486adb32b5e66680b6daf (patch)
treef34fb636206664ffa531e30d703469ff1a6d3a19 /synapse/util/logutils.py
parentAdd metrics to pushers (diff)
downloadsynapse-2c1fbea5319db2c64fa486adb32b5e66680b6daf.tar.xz
Fix up logcontexts
Diffstat (limited to 'synapse/util/logutils.py')
-rw-r--r--synapse/util/logutils.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/synapse/util/logutils.py b/synapse/util/logutils.py

index c37a157787..3a83828d25 100644 --- a/synapse/util/logutils.py +++ b/synapse/util/logutils.py
@@ -168,3 +168,38 @@ def trace_function(f): wrapped.__name__ = func_name return wrapped + + +def get_previous_frames(): + s = inspect.currentframe().f_back.f_back + to_return = [] + while s: + if s.f_globals["__name__"].startswith("synapse"): + filename, lineno, function, _, _ = inspect.getframeinfo(s) + args_string = inspect.formatargvalues(*inspect.getargvalues(s)) + + to_return.append("{{ %s:%d %s - Args: %s }}" % ( + filename, lineno, function, args_string + )) + + s = s.f_back + + return ", ". join(to_return) + + +def get_previous_frame(ignore=[]): + s = inspect.currentframe().f_back.f_back + + while s: + if s.f_globals["__name__"].startswith("synapse"): + if not any(s.f_globals["__name__"].startswith(ig) for ig in ignore): + filename, lineno, function, _, _ = inspect.getframeinfo(s) + args_string = inspect.formatargvalues(*inspect.getargvalues(s)) + + return "{{ %s:%d %s - Args: %s }}" % ( + filename, lineno, function, args_string + ) + + s = s.f_back + + return None