pub struct PythonCallbackLayerBridge { /* private fields */ }
Expand description
PythonCallbackLayerBridge
is an adapter allowing the
tracing_subscriber::layer::Layer
trait to be implemented by a Python
object. Each trait method’s arguments are serialized as JSON strings and
passed to the corresponding method on the Python object if it exists.
The interface PythonCallbackLayerBridge
expects Python objects to
implement differs slightly from the Layer
trait in Rust:
- The Python implementation of
on_new_span
may return some state that will be stored in the new span’stracing_subscriber::registry::Extensions
. - When calling other trait methods,
PythonCallbackLayerBridge
will get that state from the current span and pass it back to Python as an additional positional argument.
The state is opaque to PythonCallbackLayerBridge
but, for example, a layer
for a Python tracing system could create a Python span for each Rust span
and use a reference to the Python span as the state.
Currently only a subset of Layer
methods are bridged to Python:
tracing_subscriber::layer::Layer::on_event
, with corresponding Python signaturepython def on_event(self, event: str, state: Any): ...
tracing_subscriber::layer::Layer::on_new_span
python def on_new_span(self, span_attrs: str, span_id: str): ...
tracing_subscriber::layer::Layer::on_close
python def on_close(self, span_id: str, state: Any): ...
tracing_subscriber::layer::Layer::on_record
python def on_record(self, span_id: str, values: str, state: Any): ...
Implementations§
Source§impl PythonCallbackLayerBridge
impl PythonCallbackLayerBridge
pub fn new(py_impl: Bound<'_, PyAny>) -> PythonCallbackLayerBridge
Trait Implementations§
Source§impl<S> Layer<S> for PythonCallbackLayerBridgewhere
S: Subscriber + for<'a> LookupSpan<'a>,
impl<S> Layer<S> for PythonCallbackLayerBridgewhere
S: Subscriber + for<'a> LookupSpan<'a>,
Source§fn on_event(&self, event: &Event<'_>, ctx: Context<'_, S>)
fn on_event(&self, event: &Event<'_>, ctx: Context<'_, S>)
Notifies this layer that an event has occurred.
Source§fn on_new_span(&self, attrs: &Attributes<'_>, span_id: &Id, ctx: Context<'_, S>)
fn on_new_span(&self, attrs: &Attributes<'_>, span_id: &Id, ctx: Context<'_, S>)
Notifies this layer that a new span was constructed with the given
Attributes
and Id
.Source§fn on_close(&self, span_id: Id, ctx: Context<'_, S>)
fn on_close(&self, span_id: Id, ctx: Context<'_, S>)
Notifies this layer that the span with the given ID has been closed.
Source§fn on_record(&self, span_id: &Id, values: &Record<'_>, ctx: Context<'_, S>)
fn on_record(&self, span_id: &Id, values: &Record<'_>, ctx: Context<'_, S>)
Notifies this layer that a span with the given
Id
recorded the given
values
.Source§fn on_register_dispatch(&self, subscriber: &Dispatch)
fn on_register_dispatch(&self, subscriber: &Dispatch)
Performs late initialization when installing this layer as a
Subscriber
. Read moreSource§fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest
fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest
Registers a new callsite with this layer, returning whether or not
the layer is interested in being notified about the callsite, similarly
to
Subscriber::register_callsite
. Read moreSource§fn enabled(&self, metadata: &Metadata<'_>, ctx: Context<'_, S>) -> bool
fn enabled(&self, metadata: &Metadata<'_>, ctx: Context<'_, S>) -> bool
Returns
true
if this layer is interested in a span or event with the
given metadata
in the current Context
, similarly to
Subscriber::enabled
. Read moreSource§fn on_follows_from(&self, _span: &Id, _follows: &Id, _ctx: Context<'_, S>)
fn on_follows_from(&self, _span: &Id, _follows: &Id, _ctx: Context<'_, S>)
Notifies this layer that a span with the ID
span
recorded that it
follows from the span with the ID follows
.Source§fn on_enter(&self, _id: &Id, _ctx: Context<'_, S>)
fn on_enter(&self, _id: &Id, _ctx: Context<'_, S>)
Notifies this layer that a span with the given ID was entered.
Source§fn on_exit(&self, _id: &Id, _ctx: Context<'_, S>)
fn on_exit(&self, _id: &Id, _ctx: Context<'_, S>)
Notifies this layer that the span with the given ID was exited.
Source§fn on_id_change(&self, _old: &Id, _new: &Id, _ctx: Context<'_, S>)
fn on_id_change(&self, _old: &Id, _new: &Id, _ctx: Context<'_, S>)
Notifies this layer that a span ID has been cloned, and that the
subscriber returned a different ID.
Source§fn and_then<L>(self, layer: L) -> Layered<L, Self, S>
fn and_then<L>(self, layer: L) -> Layered<L, Self, S>
Composes this layer around the given
Layer
, returning a Layered
struct implementing Layer
. Read moreSource§fn with_subscriber(self, inner: S) -> Layered<Self, S>where
Self: Sized,
fn with_subscriber(self, inner: S) -> Layered<Self, S>where
Self: Sized,
Composes this
Layer
with the given Subscriber
, returning a
Layered
struct that implements Subscriber
. Read moreSource§fn with_filter<F>(self, filter: F) -> Filtered<Self, F, S>
fn with_filter<F>(self, filter: F) -> Filtered<Self, F, S>
Auto Trait Implementations§
impl Freeze for PythonCallbackLayerBridge
impl !RefUnwindSafe for PythonCallbackLayerBridge
impl Send for PythonCallbackLayerBridge
impl Sync for PythonCallbackLayerBridge
impl Unpin for PythonCallbackLayerBridge
impl UnwindSafe for PythonCallbackLayerBridge
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more