$ cat u.java import java.util.logging.Logger; class u { public static void main(String args[]) { final Logger printLog = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME); printLog.info("In main()"); } } $ javac -Xlint u.java $ java u Mar 5, 2008 5:10:25 PM u main INFO: In main() $
SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST
severe(String msg)
warning(String msg)
and so on
class LoggerHome { public static final Logger logger; static { // initialize logger appropriately. } } class Blob { int moo() { LoggerHome.logger.info("In Blob.moo()"); } }
public static void main(String arg[]) { Logger logger = ...; Blob b = new Blob(logger); Glob g = new Glob(logger); }
LogManager
singleton instance provides a
third way to manage Logger instances.
LogManager.getLogManager()
returns a reference to the instance.
body.neurological.brain.cerebrum
LogManager.getLogger()
retrives the named logger instance.
final Logger log = LogManager.getLogger( "body.digestive.esophagus.throat"); log.info("gulp");
assert bool-expr
throws an AssertionError
if the boolean expression
evaluates to false.
-ea
or -enableassertions
java command-line
arguments.
-ea:package-name -ea:class-name
$ cat u.java class u { public static void main(String args[]) { assert false; } } $ javac u.java $ java u $ java -ea u Exception in thread "main" java.lang.AssertionError at u.main(u.java:4) $
assert bool-expr : expr
used as a message for the assertion exception.
toString()
if needed.
$ cat u.java class u { public static void main(String args[]) { assert false : "boom!"; } } $ javac u.java $ java -ea u Exception in thread "main" java.lang.AssertionError: boom! at u.main(u.java:4) $
int i = path.lastIndexOf('/') assert i > -1 : "Missing / in path" assert i < path.length() : "Missing name"
int moo(Object o)assert o != null : "null argument";if (o == null) throw new IllegalArgumentException();