mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 14:58:03 +03:00
tracing: add isenabled
Summary: Expose Rust APIs to test if a callsite is enabled or not. Reviewed By: andll Differential Revision: D27867674 fbshipit-source-id: 0734b5ad6a65040f41a6f8b1bfc1e9a9109b9a8d
This commit is contained in:
parent
5b2be36d57
commit
abe821055e
@ -152,6 +152,32 @@ info_span = partial(span, level=LEVEL_INFO)
|
||||
warn_span = partial(span, level=LEVEL_WARN)
|
||||
error_span = partial(span, level=LEVEL_ERROR)
|
||||
|
||||
|
||||
# ---- test if a callsite is enabled ----
|
||||
|
||||
|
||||
def isenabled(level, name=None, target=None, depth=0):
|
||||
"""Test if a callsite is enabled."""
|
||||
frame = sys._getframe(1 + depth)
|
||||
ident = (id(frame.f_code), frame.f_lineno)
|
||||
callsite = _callsites.get(ident)
|
||||
if callsite is None:
|
||||
# Create the callsite.
|
||||
# The field name "message" matches Rust tracing macros behavior.
|
||||
fieldnames = []
|
||||
callsite = _insertcallsite(
|
||||
ident,
|
||||
_tracing.EventCallsite(
|
||||
obj=frame,
|
||||
name=name,
|
||||
target=target,
|
||||
level=level,
|
||||
fieldnames=fieldnames,
|
||||
),
|
||||
)
|
||||
return callsite.isenabled()
|
||||
|
||||
|
||||
# ---- local cache of callsites ----
|
||||
|
||||
_callsites = {}
|
||||
|
Loading…
Reference in New Issue
Block a user