Instead of using a shared singleton, it's cleaner in Clean Architecture to pass the log object explicitly through the layers.
Create the log in the controller with the request payload.
Pass it as an argument into the use case.
As each layer (use case, services, external API clients) does its job, it adds to the log.
When done, send it to RabbitMQ.
This way, the log stays tied to the request and avoids shared/global state, which fits Clean Architecture better.