org.productivity.java.syslog4j
Class Syslog

java.lang.Object
  extended by org.productivity.java.syslog4j.Syslog
All Implemented Interfaces:
java.io.Serializable, SyslogConstants

public final class Syslog
extends java.lang.Object
implements SyslogConstants

This class provides a Singleton interface for Syslog4j client implementations.

Usage examples:

Direct
 Syslog.getInstance("udp").info("log message");
 
Via Instance
 SyslogIF syslog = Syslog.getInstance("udp");
 syslog.info();
 

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: Syslog.java,v 1.23 2011/01/23 20:49:12 cvs Exp $
Author:
<syslog4j@productivity.org>
See Also:
Serialized Form

Field Summary
protected static java.util.Map instances
           
 
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
 
Method Summary
static SyslogIF createInstance(java.lang.String protocol, SyslogConfigIF config)
          Use createInstance(protocol,config) to create your own Syslog instance.
static void destroyInstance(java.lang.String protocol)
          destroyInstance() gracefully shuts down the specified Syslog protocol and removes the instance from Syslog4j.
static void destroyInstance(SyslogIF syslog)
          destroyInstance() gracefully shuts down the specified Syslog instance and removes it from Syslog4j.
static boolean exists(java.lang.String protocol)
           
static SyslogIF getInstance(java.lang.String protocol)
          Use getInstance(protocol) as the starting point for Syslog4j.
static boolean getSuppressRuntimeExceptions()
           
static java.lang.String getVersion()
           
static void initialize()
          initialize() sets up the default TCP and UDP Syslog protocols, as well as UNIX_SYSLOG and UNIX_SOCKET (if running on a Unix-based system).
static void main(java.lang.String[] args)
           
static void setSuppressRuntimeExceptions(boolean suppress)
           
static void shutdown()
          shutdown() gracefully shuts down all defined Syslog protocols, which includes flushing all queues and connections and finally clearing all instances (including those initialized by default).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

instances

protected static final java.util.Map instances
Method Detail

getVersion

public static final java.lang.String getVersion()
Returns:
Returns the current version identifier for Syslog4j.

setSuppressRuntimeExceptions

public static void setSuppressRuntimeExceptions(boolean suppress)
Parameters:
suppress - - true to suppress throwing SyslogRuntimeException in many methods of this class, false to throw exceptions (default)

getSuppressRuntimeExceptions

public static boolean getSuppressRuntimeExceptions()
Returns:
Returns whether or not to suppress throwing SyslogRuntimeException in many methods of this class.

getInstance

public static final SyslogIF getInstance(java.lang.String protocol)
                                  throws SyslogRuntimeException
Use getInstance(protocol) as the starting point for Syslog4j.

Parameters:
protocol - - the Syslog protocol to use, e.g. "udp", "tcp", "unix_syslog", "unix_socket", or a custom protocol
Returns:
Returns an instance of SyslogIF.
Throws:
SyslogRuntimeException

createInstance

public static final SyslogIF createInstance(java.lang.String protocol,
                                            SyslogConfigIF config)
                                     throws SyslogRuntimeException
Use createInstance(protocol,config) to create your own Syslog instance.

First, create an implementation of SyslogConfigIF, such as UdpNetSyslogConfig.

Second, configure that configuration instance.

Third, call createInstance(protocol,config) using a short & simple String for the protocol argument.

Fourth, either use the returned instance of SyslogIF, or in later code call getInstance(protocol) with the protocol chosen in the previous step.

Parameters:
protocol -
config -
Returns:
Returns an instance of SyslogIF.
Throws:
SyslogRuntimeException

initialize

public static final void initialize()
initialize() sets up the default TCP and UDP Syslog protocols, as well as UNIX_SYSLOG and UNIX_SOCKET (if running on a Unix-based system).


exists

public static final boolean exists(java.lang.String protocol)
Parameters:
protocol - - Syslog protocol
Returns:
Returns whether the protocol has been previously defined.

shutdown

public static final void shutdown()
shutdown() gracefully shuts down all defined Syslog protocols, which includes flushing all queues and connections and finally clearing all instances (including those initialized by default).


destroyInstance

public static final void destroyInstance(java.lang.String protocol)
                                  throws SyslogRuntimeException
destroyInstance() gracefully shuts down the specified Syslog protocol and removes the instance from Syslog4j.

Parameters:
protocol - - the Syslog protocol to destroy
Throws:
SyslogRuntimeException

destroyInstance

public static final void destroyInstance(SyslogIF syslog)
                                  throws SyslogRuntimeException
destroyInstance() gracefully shuts down the specified Syslog instance and removes it from Syslog4j.

Parameters:
syslog - - the Syslog instance to destroy
Throws:
SyslogRuntimeException

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Throws:
java.lang.Exception