Most Java programmers use some kind of tracing system to keep track of potential errors and problems in code that is under development. However, multithreaded and multiplatform systems can generate a large and baffling amount of tracing data.This article offers some tips that will help you make sense of trace data from complex applications. You’ll learn how to use log4j, an open source logging package, to generate information-rich log files. You’ll also see how you can use standard UNIX shell commands to mine that data for the information you need.
In a Java project I worked as mentor and chief architect 1 1/2 years ago I tried hard to persude the team not to use debuggers.
The customer had a team of experienced /360 assembler, COBOL and Visual BASIC developers with absolutely no background in OO technology and wanted his team to code a server application using J2EE technology. This is were a collegue of mine and me joint the story. While my collegue teached them to think in OO and to code in Java, I prepared the architecture and briefed my collegue what to tell them. Yes, the architecture massivly used multithreading.
Well, it is a really hard job to persuade developers with 10+ year experience not to use a debugger. But somehow after some desperate tries of some developers to follow multiple threads using a debugger they themself asked us for a better approach.