In keeping with the JavaBeans specifications, objects that receive logging messages must implement the LogListener interface. This also means that log sources must have addLogListener and removeLogListener methods.

Oracle ATG Web Commerce provides several LogListener implementations that perform the following tasks:

  • Write log messages to files, the console, and so on. See LogEvent Sinks and the components in /atg/dynamo/service/logging.

  • Dispatch a log message to one of several destinations, so error events are written to one file, warning events are written to another file, and so on. See DispatchLogger.

  • Queue log events from various components before sending them to their final destinations. A component can send a log event without waiting for the event to be written to disk; the event is sent to the queue, which later passes the event on to the listener that eventually writes it to the file. See LogListenerQueue.

A log source does not need to know where its log messages go, whether they are queued, and so on. Because listeners are defined in properties files, all logging decisions are configurable. The log source is only responsible for generating and broadcasting logging messages.