org.productivity.java.syslog4j.impl.message.processor.structured
Class StructuredSyslogMessageProcessor

java.lang.Object
  extended by org.productivity.java.syslog4j.impl.message.processor.AbstractSyslogMessageProcessor
      extended by org.productivity.java.syslog4j.impl.message.processor.structured.StructuredSyslogMessageProcessor
All Implemented Interfaces:
java.io.Serializable, SyslogConstants, SyslogMessageProcessorIF

public class StructuredSyslogMessageProcessor
extends AbstractSyslogMessageProcessor

SyslogStructuredMessageProcessor extends SyslogMessageProcessor's ability to split a syslog message into multiple messages when the message is greater than the syslog maximum message length (1024 bytes including the header). It adds support for structured syslog messages as specified by draft-ietf-syslog-protocol-23. More information here:

http://tools.ietf.org/html/draft-ietf-syslog-protocol-23

Those wishing to replace (or improve upon) this implementation can write a custom SyslogMessageProcessorIF and set it per instance via the SyslogIF.setStructuredMessageProcessor(..) method or set it globally via the StructuredSyslogMessageProcessor.setDefault(..) method.

Syslog4j is licensed under the Lesser GNU Public License v2.1. A copy of the LGPL license is available in the META-INF folder in all distributions of Syslog4j and in the base directory of the "doc" ZIP.

Version:
$Id: StructuredSyslogMessageProcessor.java,v 1.4 2011/01/11 05:11:13 cvs Exp $
Author:
Manish Motwani
See Also:
Serialized Form

Field Summary
protected static StructuredSyslogMessageProcessor defaultInstance
           
static java.lang.String VERSION
           
 
Fields inherited from class org.productivity.java.syslog4j.impl.message.processor.AbstractSyslogMessageProcessor
localName
 
Fields inherited from interface org.productivity.java.syslog4j.SyslogConstants
AF_UNIX, CACHE_HOST_ADDRESS_DEFAULT, CHAR_SET_DEFAULT, CRLF, FACILITY_AUTH, FACILITY_AUTHPRIV, FACILITY_CRON, FACILITY_DAEMON, FACILITY_FTP, FACILITY_KERN, FACILITY_LOCAL0, FACILITY_LOCAL1, FACILITY_LOCAL2, FACILITY_LOCAL3, FACILITY_LOCAL4, FACILITY_LOCAL5, FACILITY_LOCAL6, FACILITY_LOCAL7, FACILITY_LPR, FACILITY_MAIL, FACILITY_NEWS, FACILITY_SYSLOG, FACILITY_USER, FACILITY_UUCP, IDENT_SUFFIX_DEFAULT, INCLUDE_IDENT_IN_MESSAGE_MODIFIER_DEFAULT, JNA_NATIVE_CLASS, LEVEL_ALERT, LEVEL_CRITICAL, LEVEL_DEBUG, LEVEL_EMERGENCY, LEVEL_ERROR, LEVEL_INFO, LEVEL_NOTICE, LEVEL_WARN, LF, MAX_MESSAGE_LENGTH_DEFAULT, MAX_QUEUE_SIZE_DEFAULT, MAX_SHUTDOWN_WAIT_DEFAULT, OPTION_LOG_CONS, OPTION_LOG_NDELAY, OPTION_LOG_NOWAIT, OPTION_LOG_ODELAY, OPTION_LOG_PERROR, OPTION_LOG_PID, OPTION_NONE, SEND_LOCAL_NAME_DEFAULT, SEND_LOCAL_NAME_DEFAULT_VALUE, SEND_LOCAL_TIMESTAMP_DEFAULT, SERVER_SHUTDOWN_WAIT_DEFAULT, SERVER_SOCKET_BACKLOG_DEFAULT, SHUTDOWN_INTERVAL, SOCK_DGRAM, SOCK_STREAM, SPLIT_MESSAGE_BEGIN_TEXT_DEFAULT, SPLIT_MESSAGE_END_TEXT_DEFAULT, STRUCTURED_DATA_APP_NAME_DEFAULT_VALUE, STRUCTURED_DATA_EMPTY_VALUE, STRUCTURED_DATA_NILVALUE, STRUCTURED_DATA_PROCESS_ID_DEFAULT_VALUE, SYSLOG_BUFFER_SIZE, SYSLOG_DATEFORMAT, SYSLOG_FACILITY_DEFAULT, SYSLOG_HOST_DEFAULT, SYSLOG_LIBRARY_DEFAULT, SYSLOG_MESSAGE_MODIFIER_PREFIX_DEFAULT, SYSLOG_MESSAGE_MODIFIER_SUFFIX_DEFAULT, SYSLOG_PATH_DEFAULT, SYSLOG_POOL_CONFIG_MAX_ACTIVE_DEFAULT, SYSLOG_POOL_CONFIG_MAX_IDLE_DEFAULT, SYSLOG_POOL_CONFIG_MAX_WAIT_DEFAULT, SYSLOG_POOL_CONFIG_MIN_EVICTABLE_IDLE_TIME_MILLIS_DEFAULT, SYSLOG_POOL_CONFIG_MIN_IDLE_DEFAULT, SYSLOG_POOL_CONFIG_NUM_TESTS_PER_EVICTION_RUN_DEFAULT, SYSLOG_POOL_CONFIG_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS_DEFAULT, SYSLOG_POOL_CONFIG_TEST_ON_BORROW_DEFAULT, SYSLOG_POOL_CONFIG_TEST_ON_RETURN_DEFAULT, SYSLOG_POOL_CONFIG_TEST_WHILE_IDLE_DEFAULT, SYSLOG_POOL_CONFIG_TIME_BETWEEN_EVICTION_RUNS_MILLIS_DEFAULT, SYSLOG_PORT_DEFAULT, SYSLOG_SEQUENTIAL_MESSAGE_MODIFIER_FIRST_NUMBER_DEFAULT, SYSLOG_SEQUENTIAL_MESSAGE_MODIFIER_LAST_NUMBER_DEFAULT, SYSLOG_SEQUENTIAL_MESSAGE_MODIFIER_PAD_CHAR_DEFAULT, SYSLOG_SEQUENTIAL_MESSAGE_MODIFIER_PREFIX_DEFAULT, SYSLOG_SEQUENTIAL_MESSAGE_MODIFIER_SUFFIX_DEFAULT, SYSLOG_SEQUENTIAL_MESSAGE_MODIFIER_USE_PADDING_DEFAULT, SYSLOG_SOCKET_FAMILY_DEFAULT, SYSLOG_SOCKET_LIBRARY_DEFAULT, SYSLOG_SOCKET_PATH_DEFAULT, SYSLOG_SOCKET_PROTOCOL_DEFAULT, SYSLOG_SOCKET_TYPE_DEFAULT, TCP, TCP_DELIMITER_SEQUENCE_DEFAULT, TCP_FRESH_CONNECTION_INTERVAL_DEFAULT, TCP_KEEP_ALIVE_DEFAULT, TCP_MAX_ACTIVE_SOCKETS_BEHAVIOR_DEFAULT, TCP_MAX_ACTIVE_SOCKETS_DEFAULT, TCP_PERSISTENT_CONNECTION_DEFAULT, TCP_REUSE_ADDRESS_DEFAULT, TCP_SET_BUFFER_SIZE_DEFAULT, TCP_SO_LINGER_DEFAULT, TCP_SO_LINGER_SECONDS_DEFAULT, THREAD_LOOP_INTERVAL_DEFAULT, THREAD_PRIORITY_DEFAULT, THREADED_DEFAULT, THROW_EXCEPTION_ON_INITIALIZE_DEFAULT, THROW_EXCEPTION_ON_WRITE_DEFAULT, TRUNCATE_MESSAGE_DEFAULT, UDP, UNIX_SOCKET, UNIX_SYSLOG, USE_DAEMON_THREAD_DEFAULT, USE_STRUCTURED_DATA_DEFAULT, WRITE_RETRIES_DEFAULT
 
Constructor Summary
StructuredSyslogMessageProcessor()
           
StructuredSyslogMessageProcessor(java.lang.String applicationName)
           
 
Method Summary
 java.lang.String createSyslogHeader(int facility, int level, java.lang.String localName, boolean sendLocalTimestamp, boolean sendLocalName)
           
 java.lang.String getApplicationName()
           
 org.joda.time.format.DateTimeFormatter getDateTimeFormatter()
           
static StructuredSyslogMessageProcessor getDefault()
           
 java.lang.String getProcessId()
           
 void setApplicationName(java.lang.String applicationName)
           
 void setDateTimeFormatter(org.joda.time.format.DateTimeFormatter dateTimeFormatter)
           
static void setDefault(StructuredSyslogMessageProcessor messageProcessor)
           
 void setProcessId(java.lang.String processId)
           
 
Methods inherited from class org.productivity.java.syslog4j.impl.message.processor.AbstractSyslogMessageProcessor
appendLocalName, appendLocalTimestamp, appendPriority, createPacketData, createPacketData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

VERSION

public static java.lang.String VERSION

defaultInstance

protected static StructuredSyslogMessageProcessor defaultInstance
Constructor Detail

StructuredSyslogMessageProcessor

public StructuredSyslogMessageProcessor()

StructuredSyslogMessageProcessor

public StructuredSyslogMessageProcessor(java.lang.String applicationName)
Method Detail

setDefault

public static void setDefault(StructuredSyslogMessageProcessor messageProcessor)

getDefault

public static StructuredSyslogMessageProcessor getDefault()

getDateTimeFormatter

public org.joda.time.format.DateTimeFormatter getDateTimeFormatter()

setDateTimeFormatter

public void setDateTimeFormatter(org.joda.time.format.DateTimeFormatter dateTimeFormatter)

getApplicationName

public java.lang.String getApplicationName()

setApplicationName

public void setApplicationName(java.lang.String applicationName)

getProcessId

public java.lang.String getProcessId()

setProcessId

public void setProcessId(java.lang.String processId)

createSyslogHeader

public java.lang.String createSyslogHeader(int facility,
                                           int level,
                                           java.lang.String localName,
                                           boolean sendLocalTimestamp,
                                           boolean sendLocalName)
Specified by:
createSyslogHeader in interface SyslogMessageProcessorIF
Overrides:
createSyslogHeader in class AbstractSyslogMessageProcessor