Skip to content

Commit 81a0b17

Browse files
authored
Merge pull request #109 from ryanoneill/feature/tracing-spans
Replace standalone trace events with span-based tracing hierarchies
2 parents cd55b30 + d7e6f48 commit 81a0b17

File tree

3 files changed

+15
-17
lines changed

3 files changed

+15
-17
lines changed

src/app/runtime/mod.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ impl<A: App, B: Backend> Runtime<A, B> {
641641
/// Dispatches a message to update the state.
642642
pub fn dispatch(&mut self, msg: A::Message) {
643643
#[cfg(feature = "tracing")]
644-
tracing::debug!("dispatch: updating state");
644+
let _span = tracing::debug_span!("dispatch").entered();
645645

646646
let cmd = A::update(&mut self.core.state, msg);
647647
self.commands.execute(cmd);
@@ -687,10 +687,10 @@ impl<A: App, B: Backend> Runtime<A, B> {
687687

688688
/// Processes messages received from async tasks.
689689
fn process_async_messages(&mut self) {
690-
while let Ok(msg) = self.message_rx.try_recv() {
691-
#[cfg(feature = "tracing")]
692-
tracing::debug!("processing async message");
690+
#[cfg(feature = "tracing")]
691+
let _span = tracing::debug_span!("process_async_messages").entered();
693692

693+
while let Ok(msg) = self.message_rx.try_recv() {
694694
self.dispatch(msg);
695695
}
696696
}
@@ -737,7 +737,7 @@ impl<A: App, B: Backend> Runtime<A, B> {
737737
/// - [`run_ticks`](Runtime::run_ticks) — Convenience: run N full tick cycles
738738
pub fn tick(&mut self) -> io::Result<()> {
739739
#[cfg(feature = "tracing")]
740-
tracing::trace!("tick: start");
740+
let _span = tracing::debug_span!("tick").entered();
741741

742742
// Process pending commands
743743
self.process_commands();

src/app/runtime_core/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ impl<A: App, B: Backend> RuntimeCore<A, B> {
3535
/// Renders the main app view first, then any active overlays on top.
3636
pub(crate) fn render(&mut self) -> io::Result<()> {
3737
#[cfg(feature = "tracing")]
38-
tracing::trace!("render: drawing frame");
38+
let _span = tracing::debug_span!("render").entered();
3939

4040
let theme = &self.theme;
4141
let overlay_stack = &self.overlay_stack;

src/component/mod.rs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -357,14 +357,15 @@ pub trait Component: Sized {
357357
/// identical to calling `view` directly.
358358
fn traced_view(state: &Self::State, frame: &mut Frame, area: Rect, theme: &Theme) {
359359
#[cfg(feature = "tracing")]
360-
tracing::trace!(
360+
let _span = tracing::trace_span!(
361+
"component_view",
361362
component = std::any::type_name::<Self>(),
362363
area.x = area.x,
363364
area.y = area.y,
364365
area.width = area.width,
365366
area.height = area.height,
366-
"view: rendering component"
367-
);
367+
)
368+
.entered();
368369
Self::view(state, frame, area, theme);
369370
}
370371

@@ -392,17 +393,14 @@ pub trait Component: Sized {
392393
fn dispatch_event(state: &mut Self::State, event: &Event) -> Option<Self::Output> {
393394
if let Some(msg) = Self::handle_event(state, event) {
394395
#[cfg(feature = "tracing")]
395-
tracing::debug!(
396+
let _span = tracing::debug_span!(
397+
"component_dispatch",
396398
component = std::any::type_name::<Self>(),
397-
"dispatch_event: updating state"
398-
);
399+
)
400+
.entered();
399401
let output = Self::update(state, msg);
400402
#[cfg(feature = "tracing")]
401-
tracing::trace!(
402-
component = std::any::type_name::<Self>(),
403-
has_output = output.is_some(),
404-
"dispatch_event: update complete"
405-
);
403+
tracing::trace!(has_output = output.is_some(), "update complete");
406404
output
407405
} else {
408406
None

0 commit comments

Comments
 (0)