I’ve started using SmartInspect in my Delphi applications because my users were running into bugs/problems I couldn’t reproduce on my machine. When I have a general idea of the problem I’ll monitor the application in a few specific places to confirm what is or is not working.
When the bug doesn’t have an obvious cause, I feel lost. I don’t know where to start logging in order to narrow down the problem. Are there common techniques or best practices for using a logger?
SmartInspect seems to be quite powerful, but I don’t know quite what to log or how to organise my logs so the data is meaningful and useful for catching bugs.
NOTE: I’m using SmartInspect but I assume the answers should be suitable for any logging package.
Here are some guidelines I tried to implement in my own OpenSource logging unit, but it’s fairly generic, and as you state, it should be suitable for any logging package:
try...exceptblock – and add an exception classes list not worth logging (e.g.EConvertError) – e.g. our unit is able to log all exceptions via a global exception “hook” (notry..exceptto add in your code), and handle a list of exception classes to be ignored;