I don't think they meant "either" "or". I think they meant that you should not solely rely on reproducing issues locally. If you have good logging, many times, the logs would make it apparent where the issue is. When that fails, then you resort to reproducing the issue locally.
But if an app developer never adds any logs, they would be forced to reproducing the issue locally every single time which is counter productive.
So it isn't either logs or reproduce locally. It is add logs and read logs. But also reproduce locally when you really have to.
Of course that requires a certain operational maturity.
I've never worked at a place that had local dev used to think computers hated me but wondering if this is better dev practice in general
It just takes a lot less time to reproduce if you have some logging in production... and some people seem to believe that's not needed.
or is it best practice to patch with logs only without reproduction