diff --git a/src/libcamera/include/media_device.h b/src/libcamera/include/media_device.h
index 7b88e2875d59..44a59e70139e 100644
--- a/src/libcamera/include/media_device.h
+++ b/src/libcamera/include/media_device.h
@@ -16,11 +16,12 @@
 
 #include <libcamera/signal.h>
 
+#include "log.h"
 #include "media_object.h"
 
 namespace libcamera {
 
-class MediaDevice
+class MediaDevice : protected Loggable
 {
 public:
 	MediaDevice(const std::string &deviceNode);
@@ -52,6 +53,9 @@ public:
 
 	Signal<MediaDevice *> disconnected;
 
+protected:
+	std::string logPrefix() const;
+
 private:
 	std::string driver_;
 	std::string deviceNode_;
diff --git a/src/libcamera/media_device.cpp b/src/libcamera/media_device.cpp
index e1ae34f88455..fad475b9ac76 100644
--- a/src/libcamera/media_device.cpp
+++ b/src/libcamera/media_device.cpp
@@ -74,6 +74,11 @@ MediaDevice::~MediaDevice()
 	clear();
 }
 
+std::string MediaDevice::logPrefix() const
+{
+	return deviceNode() + "[" + driver() + "]";
+}
+
 /**
  * \brief Claim a device for exclusive use
  *
