diff --git a/include/VirtualMachineManager.h b/include/VirtualMachineManager.h index 8ea7151cc3..ade4d0d3d9 100644 --- a/include/VirtualMachineManager.h +++ b/include/VirtualMachineManager.h @@ -292,7 +292,7 @@ private: /** * */ - static void _log(std::unique_ptr msg); + void _log(std::unique_ptr msg); /** * diff --git a/src/vmm/VirtualMachineManager.cc b/src/vmm/VirtualMachineManager.cc index 937d9c5450..026ca84067 100644 --- a/src/vmm/VirtualMachineManager.cc +++ b/src/vmm/VirtualMachineManager.cc @@ -123,7 +123,7 @@ int VirtualMachineManager::start() bind(&VirtualMachineManager::_resize, this, _1)); register_action(VMManagerMessages::LOG, - &VirtualMachineManager::_log); + bind(&VirtualMachineManager::_log, this, _1)); string error; if ( DriverManager::start(error) != 0 ) diff --git a/src/vmm/VirtualMachineManagerProtocol.cc b/src/vmm/VirtualMachineManagerProtocol.cc index d0c06e69b1..4ecc4d02ba 100644 --- a/src/vmm/VirtualMachineManagerProtocol.cc +++ b/src/vmm/VirtualMachineManagerProtocol.cc @@ -858,7 +858,14 @@ void VirtualMachineManager::_resize(unique_ptr msg) void VirtualMachineManager::_log(unique_ptr msg) { - NebulaLog::log("VMM", log_type(msg->status()[0]), msg->payload()); + if (msg->oid() < 0) + { + NebulaLog::log("VMM", log_type(msg->status()[0]), msg->payload()); + } + else if (auto vm = vmpool->get_ro(msg->oid())) + { + vm->log("VMM", log_type(msg->status()[0]), msg->payload()); + } } /* -------------------------------------------------------------------------- */