Skip to main content

Posts

Showing posts from July, 2015

Instrumentation Revolution

It's long been good practice to include some sort of tracing in code to help with problems as and when they arise (and they will). And as maligned as simply dumping to stdout is, I would prefer to see this than no trace at all. However, numerous logging frameworks exist and there's little excuse not to use one. We have though gotten into the habit of disabling much of this valued output in order to preserve performance. This is understandable of course as heavily used components or loops can chew up an awful lot of time and I/O writing out "Validating record 1 of 64000000. Validating record 2 of 64000000..." and so on. Useful huh? And we have various levels of output - debug, info, warning, fatal - and the ability to turn the output level up for specific classes or libraries. Cool. But what we do in production is turn off anything below a warning and when something goes wrong we scramble about; often under change control, to try and get some more data out of the sys