diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index c1025e812e5e..82479ad88f91 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -1707,8 +1707,8 @@ int CameraDevice::processCaptureRequest(camera3_capture_request_t *camera3Reques
 	else
 		descriptor->settings_ = lastSettings_;

-	LOG(HAL, Debug) << "Queueing Request to libcamera with "
-			<< descriptor->numBuffers_ << " HAL streams";
+	LOG(HAL, Debug) << "Queueing request " << descriptor->request_->cookie()
+			<< " with " << descriptor->numBuffers_ << " streams";
 	for (unsigned int i = 0; i < descriptor->numBuffers_; ++i) {
 		const camera3_stream_buffer_t *camera3Buffer = &descriptor->buffers_[i];
 		camera3_stream *camera3Stream = camera3Buffer->stream;
@@ -1797,6 +1797,9 @@ void CameraDevice::requestComplete(Request *request)
 		status = CAMERA3_BUFFER_STATUS_ERROR;
 	}

+	LOG(HAL, Debug) << "Request " << request->cookie() << " completed with "
+			<< descriptor->numBuffers_ << " streams";
+
 	/*
 	 * \todo The timestamp used for the metadata is currently always taken
 	 * from the first buffer (which may be the first stream) in the Request.
diff --git a/src/android/camera_worker.h b/src/android/camera_worker.h
index 6522f1d68a20..d70605761509 100644
--- a/src/android/camera_worker.h
+++ b/src/android/camera_worker.h
@@ -30,6 +30,7 @@ public:
 	{
 		return request_->metadata();
 	}
+	unsigned long cookie() const { return request_->cookie(); }

 	void addBuffer(libcamera::Stream *stream,
 		       libcamera::FrameBuffer *buffer, int fence);
diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp
index a68684ef9fd3..e561ce1d5d0e 100644
--- a/src/libcamera/request.cpp
+++ b/src/libcamera/request.cpp
@@ -88,6 +88,8 @@ Request::Request(Camera *camera, uint64_t cookie)
 	metadata_ = new ControlList(controls::controls);

 	LIBCAMERA_TRACEPOINT(request_construct, this);
+
+	LOG(Request, Debug) << "Created request - cookie: " << cookie_;
 }

 Request::~Request()
