there is practically no performance difference between disabled logging and removing the entire logging code. The disabled flag is checked at the earliest possible moment (at the start of each log method), so there is no performance hit at all if you leave the log calls in your application. A typical log method looks as follows (pseudo-code):
// Do the actual logging
You can just leave the logging statements in your application. If your users encounter a problem, you can tell them to enable logging (via a SmartInspect configuration file or some option in your application, e.g.) to find the problem. That’s what we usually recommend.
Another option would be to have logging enabled and use the memory protocol (as opposed to logging to a file, for example) which offers the best performance. The memory protocol can flush its data to a log file on demand.