Versions Compared

Key

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

...

This design follows on from the high level design work to provide a more detailed description of the format that all logged messages will take. The design is split in to two sections:

  • Entity LogSubjects Detail
  • Log Formating

...

LogSubject Detail

Each Entity LogSubject in the system has a format that for logging its own indentifier. When an Entity is actually logged then it must establish its full path by logging the children entities based on the logging hierarchy.

...

It is invisaged that each Model instance will have a LogSubject member variable to act as a cache for their log format.

LogSubject Identifiers

The following is the basic Entity LogSubject identifiers:

Entity LogSubject

Identifier

Broker

b

MessageStore

ms

VirtualHost

vh(<name>)

Conection

con:<uid>(<username>@<ip>/<vhost-name>)

Channel

ch:<uid>

Queue

qu(<queueName>)

Exchange

ex(<exchangeName>)

Binding

bd(<routingKey>)

Subscription

sub:<uid>:qu(<queueName>)

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="5c131118e906993a-9bcfff31-4fcf4087-874b8729-fdc9f7f3d07d9eaddf4bd2bd"><ac:plain-text-body><![CDATA[

Plugin

pl(name[, <optional values>]*)]]></ac:plain-text-body></ac:structured-macro>

The plugin format allows for simple identification of the plugin such as 'ACL', 'Firewall' as well as giving the plugin the option to extend its base format. This extension is to allow easy processing of the log file.

...

LogSubject Paths

Broker, VirtualHost & Connection are root identifiers which means no parent nodes need be pre-appended to the log statement.

Entity LogSubject

Log Path

Example

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="4d867f2a-80d3-4511-bf92-ccbcd837790a"><ac:plain-text-body><![CDATA[

MessageStore

vh(name)/ms

<datetime> [ vh(/)/ms ] <Message>

]]></ac:plain-text-body></ac:structured-macro>

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="c6b9ea0e-2a98-4ab1-847d-643103abaea9"><ac:plain-text-body><![CDATA[

Channel

<Connection>/ch:<uid>

<datetime> [ con:1(user@127.0.0.1/)/ch:1 ] <Message> ]

]]></ac:plain-text-body></ac:structured-macro>

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="1961be7d-bd3c-4414-a551-0589fdf2d4ef"><ac:plain-text-body><![CDATA[

Queue

<Virtualhost>/qu(<queueName>)

<datetime> [ vh(/)/qu(testQueue) ] <Message> ]

]]></ac:plain-text-body></ac:structured-macro>

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="27fff8b2-1d7b-444a-9ed1-2254419c69a1"><ac:plain-text-body><![CDATA[

Exchange

<Virtualhost>/ex(<exchangeName>)

<datetime> [ vh(/)/ex(amq.direct) ] <Message> ]

]]></ac:plain-text-body></ac:structured-macro>

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="8744a0a4-eeae-420f-b21c-de7efc04f8aa"><ac:plain-text-body><![CDATA[

Binding

<Virtualhost>/<Exchange>/<Queue>/bd(<routingKey>)

<datetime> [ vh(/)/ex(amq.direct)/qu(testQueue)/bd(testQueue) ] <Message> ]

]]></ac:plain-text-body></ac:structured-macro>

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="43f646be-fb41-428a-b419-40f892203321"><ac:plain-text-body><![CDATA[

Subscription

<Channel>/ sub:<uid>:qu(<queue-name>)

<datetime> [ con:1(uuser@127.0.0.1/)/ch:1/sub:2:qu(testQueue)] <Message>

]]></ac:plain-text-body></ac:structured-macro>

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="b9ea86b01ce66ef2-2f21e8e5-43f24d4b-82e58918-4208dc6386c9c7dd7fc7e6e6"><ac:plain-text-body><![CDATA[

Plugin

<Entity>/pl(name[, <optional values>]*)

<datetime> [ con:1(user@127.0.0.1/)/ch:1/pl(ACL, Consume, qu(testQueue))] <Message>

]]></ac:plain-text-body></ac:structured-macro>

...

No Format
titleLog Format
<ISO-8601 Datetime (UTC based w/ TZ)> <Logging Level> [ <LogActor> <Logging] Entity[ Detail><LogSubject> ] <Log Message><LogMessage>
No Format
titleExample Log Statement
2009-06-29 13:35:10,1234 +0100 INFOMessage [ con:1(user@127.0.0.1/)/ch:2/] [sub:1:qu(myqueue) ] Subscription Event Occcured