/home/wpollock1/public_html/AJava/LoggingDemo.java

// Demo of Java SE logging API
// Written 10/2007 by Wayne Pollock, Tampa Florida USA.
// Last modified 4/2013: Added the ability to change the log level
//   from the command line, with:  java -Dlog.level=<new level> LoggingDemo
//   (Try it with "ALL" or "OFF".)

import java.util.logging.*;
import static java.util.logging.Level.*;

public class LoggingDemo
{
   // Create a logger named for this class:
   private static final String className = LoggingDemo.class.getName();
   private static final Logger logger = Logger.getLogger( className );
   private static final Logger rootLogger = Logger.getLogger( "" );

   public static void main ( String [] args )
   {
      System.out.println( "My Logger name: " + logger.getName()
         + ", Default Level: " + logger.getLevel() );
      System.out.println( "Root logger's default level: "
         + rootLogger.getLevel() + "\n" );

      // If log.level was set on command line, change to that level:
      String logLevel = System.getProperty( "log.level" );
      if ( logLevel != null ) {
         logger.info( "Changing default log level to: " + logLevel );
         try {
            Level level = Level.parse( logLevel );
            logger.setLevel( level );
            rootLogger.setLevel( level );

            // Must set new level on handlers too (we only have the one,
            // attached to the root logger):
            Handler [] handlers = rootLogger.getHandlers();
            for ( Handler handler : handlers )
               handler.setLevel( level );

         } catch ( Exception e ) {
             logger.warning( "Failed to change level to \"" +
               logLevel + "\"." );
         }
      }
      System.out.println();

      logger.info( "Starting Application\n" );

      doSomethingInteresting();

      logger.info( "Ending Application\n" );
   }

   static void doSomethingInteresting ()
   {
      // Tell logger the the level, class, method, and message:
      logger.logp( INFO, className, "doSomethingInteresting",
         "Attempting to take over the world\n" );

      if ( ! takeOverTheWorld() ) {
          logger.logp( SEVERE, className, "doSomethingInteresting",
             "Failed to take over the world!\n" );
      }
   }

   static boolean takeOverTheWorld () {
      logger.entering( className, "takeOverTheWorld" );
      // ...
      logger.exiting( className, "takeOverTheWorld" );
      return false;  //  Too bad, it didn't work.
   }
}