Turns out that there's a Loglevel on the ConsoleHandler as well, and it is set to INFO level messages by default.
Just setting the log level on the Logger itself to Level.ALL is just not enough.
The example here is sufficient for the most basic logging of simple one-class Hello-world applications.
Of course, you can always use System.out.println statements instead for simple one-class applications, but I think it's a bad habit to get into.
Configuration
Logging configuration can be done by means of a properties file.[1][2]
The properties file can be added during the startup as VM parameters, for example -Djava.util.logging.config.file=/home/mrbear/NetBeansProjects/jtail/logging.properties.
If no properties file is provided, the default is "lib/logging.properties" in the JRE directory.[2] The default file will only show INFO messages.
The following example will show all logging all of the time.
For information on programmable logging (Class-based), see the references.
The Global Logger
To make logging even in simple cases, as easy as possible, the global logger was introduced and in Java 7 it is easily referenced.System.out.println("x=" + x);
Can therefore be replaced by:Logger.getGlobal().finest("x=" + x);
Unfortunately, you still have to set the LogLevel appropriately, similarly as displayed in the first code example above.Update 2015/03/26: added the Global logger info.
References
- [1] Java Logging - Configuration
- http://tutorials.jenkov.com/java-logging/configuration.html
- [2] LogManager - Javadoc
- http://docs.oracle.com/javase/7/docs/api/java/util/logging/LogManager.html
No comments:
Post a Comment