# Package org.apache.synapse.format.syslog

Implementation of the BSD syslog protocol described in RFC 3164.

The protocol is implemented as an Axis2 message builder that takes a single syslog message as input and that produces an XML representation of the event in the form of an AXIOM tree. The XML format is non standard and is defined by the `org/apache/synapse/format/syslog/schema.xsd` included in the JAR.

A typical message looks as follows:

     <message xmlns="http://synapse.apache.org/ns/syslog"
              facility="authpriv" severity="info" tag="CRON" pid="6813">
       pam_unix(cron:session): session closed for user root
     </message>

The message builder can be registered in the Axis2 configuration file (`axis2.xml`) in the following way:

     <messageBuilders>
       <messageBuilder contentType="application/x-syslog"
                       class="org.apache.synapse.format.syslog.SyslogMessageBuilder"/>
     </messageBuilders>

Again the content type `application/x-syslog` is non standard and is only used to refer to the message builder later.

#### Known issues

- The message builder currently doesn't support timestamp and host fields. Messages containing these fields are not parsed correctly.

- Class Summary
  Class | Description
  --- | ---
  InputStreamConsumer | Input stream consumer.
  SyslogConstants | Class defining constants for the syslog protocol.
  SyslogMessageBuilder | Message builder for syslog events.

- Exception Summary
  Exception | Description
  --- | ---
  ProtocolException | Exception used by `InputStreamConsumer`.