diff --git a/fvm/src/call_manager/default.rs b/fvm/src/call_manager/default.rs index 8611365e5..06a3b71e6 100644 --- a/fvm/src/call_manager/default.rs +++ b/fvm/src/call_manager/default.rs @@ -513,6 +513,10 @@ where Ok(()) } + + fn log(&mut self, msg: String) { + self.trace(ExecutionEvent::Log(msg)) + } } impl DefaultCallManager diff --git a/fvm/src/call_manager/mod.rs b/fvm/src/call_manager/mod.rs index b8d217e39..80b5ed936 100644 --- a/fvm/src/call_manager/mod.rs +++ b/fvm/src/call_manager/mod.rs @@ -174,6 +174,9 @@ pub trait CallManager: 'static { /// Appends an event to the event accumulator. fn append_event(&mut self, evt: StampedEvent); + + /// log + fn log(&mut self, msg: String); } /// The result of calling actor's entrypoint diff --git a/fvm/src/kernel/default.rs b/fvm/src/kernel/default.rs index 209c05f28..c89a40ee0 100644 --- a/fvm/src/kernel/default.rs +++ b/fvm/src/kernel/default.rs @@ -951,8 +951,8 @@ impl DebugOps for DefaultKernel where C: CallManager, { - fn log(&self, msg: String) { - println!("{}", msg) + fn log(&mut self, msg: String) { + self.call_manager.log(msg) } fn debug_enabled(&self) -> bool { diff --git a/fvm/src/kernel/mod.rs b/fvm/src/kernel/mod.rs index a268dd8a0..07e5acaf9 100644 --- a/fvm/src/kernel/mod.rs +++ b/fvm/src/kernel/mod.rs @@ -285,7 +285,7 @@ pub trait RandomnessOps { #[delegatable_trait] pub trait DebugOps { /// Log a message. - fn log(&self, msg: String); + fn log(&mut self, msg: String); /// Returns whether debug mode is enabled. fn debug_enabled(&self) -> bool; diff --git a/fvm/src/trace/mod.rs b/fvm/src/trace/mod.rs index 30f5c03c2..370828b19 100644 --- a/fvm/src/trace/mod.rs +++ b/fvm/src/trace/mod.rs @@ -38,4 +38,5 @@ pub enum ExecutionEvent { id: ActorID, state: ActorState, }, + Log(String), } diff --git a/fvm/tests/dummy.rs b/fvm/tests/dummy.rs index 765ee7aba..f3d25a179 100644 --- a/fvm/tests/dummy.rs +++ b/fvm/tests/dummy.rs @@ -404,4 +404,8 @@ impl CallManager for DummyCallManager { ) -> fvm::kernel::Result<()> { todo!() } + + fn log(&mut self, _msg: String) { + todo!() + } }