LoggingDemo.java

Download LoggingDemo.java

 1: // Demo of Java SE logging API
 2: // Written 10/2007 by Wayne Pollock, Tampa Florida USA.
 3: // Last modified 4/2013: Added the ability to change the log level
 4: //   from the command line, with:  java -Dlog.level=<new level> LoggingDemo
 5: //   (Try it with "ALL" or "OFF".)
 6: 
 7: import java.util.logging.*;
 8: import static java.util.logging.Level.*;
 9: 
10: public class LoggingDemo
11: {
12:    // Create a logger named for this class:
13:    private static final String className = LoggingDemo.class.getName();
14:    private static final Logger logger = Logger.getLogger( className );
15:    private static final Logger rootLogger = Logger.getLogger( "" );
16: 
17:    public static void main ( String [] args )
18:    {
19:       System.out.println( "My Logger name: " + logger.getName()
20:          + ", Default Level: " + logger.getLevel() );
21:       System.out.println( "Root logger's default level: "
22:          + rootLogger.getLevel() + "\n" );
23: 
24:       // If log.level was set on command line, change to that level:
25:       String logLevel = System.getProperty( "log.level" );
26:       if ( logLevel != null ) {
27:          logger.info( "Changing default log level to: " + logLevel );
28:          try {
29:             Level level = Level.parse( logLevel );
30:             logger.setLevel( level );
31:             rootLogger.setLevel( level );
32: 
33:             // Must set new level on handlers too (we only have the one,
34:             // attached to the root logger):
35:             Handler [] handlers = rootLogger.getHandlers();
36:             for ( Handler handler : handlers )
37:                handler.setLevel( level );
38: 
39:          } catch ( Exception e ) {
40:              logger.warning( "Failed to change level to \"" +
41:                logLevel + "\"." );
42:          }
43:       }
44:       System.out.println();
45: 
46:       logger.info( "Starting Application\n" );
47: 
48:       doSomethingInteresting();
49: 
50:       logger.info( "Ending Application\n" );
51:    }
52: 
53:    static void doSomethingInteresting ()
54:    {
55:       // Tell logger the the level, class, method, and message:
56:       logger.logp( INFO, className, "doSomethingInteresting",
57:          "Attempting to take over the world\n" );
58: 
59:       if ( ! takeOverTheWorld() ) {
60:           logger.logp( SEVERE, className, "doSomethingInteresting",
61:              "Failed to take over the world!\n" );
62:       }
63:    }
64: 
65:    static boolean takeOverTheWorld () {
66:       logger.entering( className, "takeOverTheWorld" );
67:       // ...
68:       logger.exiting( className, "takeOverTheWorld" );
69:       return false;  //  Too bad, it didn't work.
70:    }
71: }