Log4j

From Wiki RB4

Concepts[edit]

Log4j has teh following fundamental objects:

Logger/Category[edit]

Loggers are named entities and sub classes of category. Logger names are case-sensitive and they follow the hierarchical naming rule. A logger is said to be an ancestor of another logger if its name followed by a dot is a prefix of the descendant logger name. Eine Referenz auf die Instanz des Root-Loggers kann mit der statischen Funktion

Logger.getLooger("<NAME>");

geholt werden.

The root logger resides at the top of the logger hierarchy. It is exceptional in two ways:

  1. it always exists,
  2. it cannot be retrieved by name, but by Logger.getRootLogger().

Priority[edit]

Loggers may be assigned levels. The set of possible levels, that is:

  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR
  • FATAL

Priority objects have both a string name and an integer value. The name is simply a mnemonic label for the priority. The integer value defines a relative order amongst priorities. The Level class extends the Priority class to be conform with java.util.logging. For the standard levels, we have DEBUG < INFO < WARN < ERROR < FATAL.

Layout[edit]

The layout is defined in a pattern prefixed by % and a following letter code:

  • c: category
  • C: class name
  • d{<Format>}: date e.g. %d{HH:mm:ss,SSS}
  • E: exception stack
  • F: file name
  • l: location
  • L: line number
  • m: message
  • M: method name
  • p: log level (ERR, INFO, ...)
  • s: message
  • t: name of the thread

Logging[edit]

Das Loggen von Meldungen erfolgt über so genannte "Printing-Methods". Folgende Methoden sind verfügbar:

logger.[debug()|info()|warn()|error()fatal()|log()|trace()];

Configuration[edit]

Properties can be defined by a properties file or by an XML file. The xml configuration class offers more flexibility and the benefits, and drawbacks, of an XML based configuration.

Logging Level are:

  • ALL
  • DEBUG
  • ERROR
  • FATAL
  • INFO
  • OFF
  • TRACE
  • WARN