Most Java programmers use some kind of tracing system to keep track of potential errors and problems in code under development. However, multithreaded and multiplatform systems can generate a large and baffling amount of tracing data. This article offers tips that will help you make sense of trace data from complex applications.