I use one about every other day and find it indispensable. We use Play! so compilation/deployment isn't an issue, but I still find the feedback loop between "I want to know the state of this variable", "I'll write a logging statement here" and "I'll reproduce the state I was in with the app" to be too long.
The only time I don't use one is when I need to debug an issue that occurs only on a remote server (our sysadmins don't like opening ports for that sort of thing).
The only time I don't use one is when I need to debug an issue that occurs only on a remote server (our sysadmins don't like opening ports for that sort of thing).