There is little worse as a developer than trying to figure out why an application is not working if you don’t know what is going on inside it. Sometimes you can’t even tell whether the system is working as designed at all.
When applications are running in production, they become black boxes that need to be traced and monitored. One of the simplest, yet most important ways to do so is by logging. Logging allows us—at the time we develop our software—to instruct the program to emit information while the system is running that will be useful for us and our sysadmins.
Supporting Open Source.
Have you tried: Diving with Sharks?