I am not a fan of logging tbh. That said I am working on some huge web services and we have logging in entry and exit of requests, using the second and correct solution :)
When working on existing code I just rip out print style statements. My view on them is sloppy programmers not cleaning up mess they have worked in some code.
I am strange when it comes to debugging, I run code in my head while I read it and unit test everything. I run a debugger only when I really need to, unit tests are my debug :)