When code in a managed package fails in a customer org it does not produce logs. This is a serious problem for the ISV that needs to provide a fix but is unable to reproduce the bug in his development org.
I expected the "Notify on Apex Error" field on a package to work much better, as I do not receive error emails in all cases and they often miss a helpful stacktrace.
I've heard of custom logging solutions that write custom object records on the customer org, that persist logs and notify the ISV. The problem I see with this solution is that the logging DML might generate limit problems or log records might often not be inserted due to Database rollbacks.
How do you cope with such situations?