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: }