Once you believe that all the bugs have been removed from your code, you would then compile a release version and deploy the application so people can use it. But no code is bug free, and during runtime unexpected errors can occur.
End users are notoriously bad about noticing what they were doing when an error occurs, so you should not rely on them accurately providing useful information to fix the problem.
Therefore, it is good practice to add code throughout your application to log what is happening, and especially when exceptions occur, so that you can review the logs and use them to trace the issue and fix the problem.
There are two types that can be used to add simple logging to your code: Debug and Trace. Debug is used to add logging that gets written during development. Trace is used to add logging that gets written during both development...