diff --git a/src/libcamera/ipc_pipe_unixsocket.cpp b/src/libcamera/ipc_pipe_unixsocket.cpp
index 668ec73b..9ca219dc 100644
--- a/src/libcamera/ipc_pipe_unixsocket.cpp
+++ b/src/libcamera/ipc_pipe_unixsocket.cpp
@@ -7,6 +7,7 @@
 
 #include "libcamera/internal/ipc_pipe_unixsocket.h"
 
+#include <unistd.h>
 #include <vector>
 
 #include <libcamera/base/event_dispatcher.h>
@@ -42,6 +43,10 @@ IPCPipeUnixSocket::IPCPipeUnixSocket(const char *ipaModulePath,
 	args.push_back(std::to_string(fd.get()));
 	fds.push_back(fd.get());
 
+	/* Share stdout and stderr with the proxy for logging purpose */
+	fds.push_back(STDOUT_FILENO);
+	fds.push_back(STDERR_FILENO);
+
 	proc_ = std::make_unique<Process>();
 	int ret = proc_->start(ipaProxyWorkerPath, args, fds);
 	if (ret) {
