Why use tail workers over producer worker can be used to send all the logs itself?

I want to collect error logs in my app and I came across tail worker. And I couldn't understand the logic behind its existence. Why would I use tail workers when I can just send all the errors and logs at the end of the request. I can use try catch block to capture all the errors and also save the tail workers invoke request costs which is same as workers? Do it provide any added benefits that I couldn't get?
Was this page helpful?