Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Do we want the ability to view a log file that is on disk from Management, or is the ability to view the log messages within the bounded buffer recorder sufficient?

High Level Design

 

The configured object model will be extended so that Broker and Virtualhost support zero or more LogRecorders.  These objects define the type of log that will be produced (file, stream etc), a log level, and a attributes particular to each log recorder type (e.g. rolling options).  Internally, the LogRecorder will implement a LogAppender.  LogRecords objects will become objects that are responsible for the production of logging. By the production of logging we mean the production of a log file, logging to a stream and the collection of recent logs for viewing via management.  Both will support one or more LogFilters that will define actually what goes into the log  (?? how do we express that a Broker log needs to exclude activity for virtual hosts in a generic fashion??)will appear in the log.

 

 

 

 

Proposed Configure Object Model

Gliffy Diagram
nameConfigModelShowingProposedLoggingObjects

 

Gliffy Diagram
nameLoggingObjectHierarchy

 

LogRecorders

The types of LogRecorder will be:

FileLogRecorder

A type that logs to a file on disk supporting rolling (time or sized based) and compression.  It should also accept a umask allowing the file permissions of logs to be controlled (in POSIX environments).

StreamRecorder

Sends a log file to standard out or standard error.  Maybe a boolean option flush?

BoundedBufferRecorder

Logs to a bounded buffer.  

Might be useful to define other recorder types to support testing.

LogFilters

Need LogFilters to have the ability to express that certain loggers should be logger at a certain level e.g. o.a.qpid at level DEBUG.  Also need a way to express whether a virtual hosts messages should be included or not?