provided by: 
Originally published at Internet.comApplication logs serve different purposes. They can help in debugging, remote troubleshooting, and tracking. The logging requirements usually depend on who is going to use the logs. A developer would need a more detailed log compared to an end-user trying to fix a common problem.

Piroz Mohseni
Another common requirement is the ability to transmit the log (via a protocol such as HTTP) to a remote location. This not only allows supporting customers remotely but also serves as a useful data-gathering mechanism where development teams can create profiles of their application usage and the conditions under which it is failing.
Addressing these requirements, with JDK 1.4, the Java platform will support a set of core logging facilities contained in the java.util.logging package. The main class is Logger. You obtain an instance of Logger using the static getLogger() method with a unique name as its argument: static Logger logger = Logger.getLogger("com.foo.someClass");
Each Logger has a "Level" associated with it that can be set using the setLevel() method. This reflects a minimum Level that the logger cares about. If a Logger's level is set to null, then its effective level is inherited from its parent. The different levels can be found as fields in the Levels class: * SEVERE (highest value) * WARNING * INFO * CONFIG * FINE * FINER * FINEST (lowest value) ...
Read article at Internet.com site