$ 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();