vtcode_exec_events/
tracing_support.rs1use tracing::Level;
2
3use super::{EVENT_SCHEMA_VERSION, EventEmitter, ThreadEvent, VersionedThreadEvent};
4
5#[derive(Debug, Clone)]
7pub struct TracingEmitter {
8 level: Level,
9}
10
11impl TracingEmitter {
12 pub fn new(level: Level) -> Self {
14 Self { level }
15 }
16}
17
18impl Default for TracingEmitter {
19 fn default() -> Self {
20 Self { level: Level::INFO }
21 }
22}
23
24impl EventEmitter for TracingEmitter {
25 fn emit(&mut self, event: &ThreadEvent) {
26 match self.level {
27 Level::TRACE => tracing::event!(
28 target: "vtcode_exec_events",
29 Level::TRACE,
30 schema_version = EVENT_SCHEMA_VERSION,
31 event = ?VersionedThreadEvent::new(event.clone()),
32 "vtcode_exec_event"
33 ),
34 Level::DEBUG => tracing::event!(
35 target: "vtcode_exec_events",
36 Level::DEBUG,
37 schema_version = EVENT_SCHEMA_VERSION,
38 event = ?VersionedThreadEvent::new(event.clone()),
39 "vtcode_exec_event"
40 ),
41 Level::INFO => tracing::event!(
42 target: "vtcode_exec_events",
43 Level::INFO,
44 schema_version = EVENT_SCHEMA_VERSION,
45 event = ?VersionedThreadEvent::new(event.clone()),
46 "vtcode_exec_event"
47 ),
48 Level::WARN => tracing::event!(
49 target: "vtcode_exec_events",
50 Level::WARN,
51 schema_version = EVENT_SCHEMA_VERSION,
52 event = ?VersionedThreadEvent::new(event.clone()),
53 "vtcode_exec_event"
54 ),
55 Level::ERROR => tracing::event!(
56 target: "vtcode_exec_events",
57 Level::ERROR,
58 schema_version = EVENT_SCHEMA_VERSION,
59 event = ?VersionedThreadEvent::new(event.clone()),
60 "vtcode_exec_event"
61 ),
62 }
63 }
64}
65
66pub use TracingEmitter as PublicTracingEmitter;