Save This Page
Home » apache-log4j-1.2.15 » org.apache » log4j » net » [javadoc | source]
org.apache.log4j.net
public class: JMSAppender [javadoc | source]
java.lang.Object
   org.apache.log4j.AppenderSkeleton
      org.apache.log4j.net.JMSAppender

All Implemented Interfaces:
    OptionHandler, Appender

A simple appender that publishes events to a JMS Topic. The events are serialized and transmitted as JMS message type ObjectMessage .

JMS topics and topic factories are administered objects that are retrieved using JNDI messaging which in turn requires the retreival of a JNDI Context .

There are two common methods for retrieving a JNDI Context . If a file resource named jndi.properties is available to the JNDI API, it will use the information found therein to retrieve an initial JNDI context. To obtain an initial context, your code will simply call:

InitialContext jndiContext = new InitialContext();

Calling the no-argument InitialContext() method will also work from within Enterprise Java Beans (EJBs) because it is part of the EJB contract for application servers to provide each bean an environment naming context (ENC).

In the second approach, several predetermined properties are set and these properties are passed to the InitialContext contructor to connect to the naming service provider. For example, to connect to JBoss naming service one would write:

Properties env = new Properties( );
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL, "jnp://hostname:1099");
env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
InitialContext jndiContext = new InitialContext(env);
where hostname is the host where the JBoss applicaiton server is running.

To connect to the the naming service of Weblogic application server one would write:

Properties env = new Properties( );
env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL, "t3://localhost:7001");
InitialContext jndiContext = new InitialContext(env);

Other JMS providers will obviously require different values. The initial JNDI context can be obtained by calling the no-argument InitialContext() method in EJBs. Only clients running in a separate JVM need to be concerned about the jndi.properties file and calling InitialContext#InitialContext() or alternatively correctly setting the different properties before calling InitialContext#InitialContext(java.util.Hashtable) method.

Field Summary
 String securityPrincipalName     
 String securityCredentials     
 String initialContextFactoryName     
 String urlPkgPrefixes     
 String providerURL     
 String topicBindingName     
 String tcfBindingName     
 String userName     
 String password     
 boolean locationInfo     
 TopicConnection topicConnection     
 TopicSession topicSession     
 TopicPublisher topicPublisher     
Fields inherited from org.apache.log4j.AppenderSkeleton:
layout,  name,  threshold,  errorHandler,  headFilter,  tailFilter,  closed
Constructor:
 public JMSAppender() 
Method from org.apache.log4j.net.JMSAppender Summary:
activateOptions,   append,   checkEntryConditions,   close,   getInitialContextFactoryName,   getLocationInfo,   getPassword,   getProviderURL,   getSecurityCredentials,   getSecurityPrincipalName,   getTopicBindingName,   getTopicConnection,   getTopicConnectionFactoryBindingName,   getTopicPublisher,   getTopicSession,   getURLPkgPrefixes,   getUserName,   lookup,   requiresLayout,   setInitialContextFactoryName,   setLocationInfo,   setPassword,   setProviderURL,   setSecurityCredentials,   setSecurityPrincipalName,   setTopicBindingName,   setTopicConnectionFactoryBindingName,   setURLPkgPrefixes,   setUserName
Methods from org.apache.log4j.AppenderSkeleton:
activateOptions,   addFilter,   append,   clearFilters,   doAppend,   finalize,   getErrorHandler,   getFilter,   getFirstFilter,   getLayout,   getName,   getThreshold,   isAsSevereAsThreshold,   setErrorHandler,   setLayout,   setName,   setThreshold
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.apache.log4j.net.JMSAppender Detail:
 public  void activateOptions() 
    Options are activated and become effective only after calling this method.
 public  void append(LoggingEvent event) 
 protected boolean checkEntryConditions() 
 public synchronized  void close() 
    Close this JMSAppender. Closing releases all resources used by the appender. A closed appender cannot be re-opened.
 public String getInitialContextFactoryName() 
 public boolean getLocationInfo() 
    Returns value of the LocationInfo property which determines whether location (stack) info is sent to the remote subscriber.
 public String getPassword() 
 public String getProviderURL() 
 public String getSecurityCredentials() 
 public String getSecurityPrincipalName() 
 public String getTopicBindingName() 
    Returns the value of the TopicBindingName option.
 protected TopicConnection getTopicConnection() 
    Returns the TopicConnection used for this appender. Only valid after activateOptions() method has been invoked.
 public String getTopicConnectionFactoryBindingName() 
    Returns the value of the TopicConnectionFactoryBindingName option.
 protected TopicPublisher getTopicPublisher() 
    Returns the TopicPublisher used for this appender. Only valid after activateOptions() method has been invoked.
 protected TopicSession getTopicSession() 
    Returns the TopicSession used for this appender. Only valid after activateOptions() method has been invoked.
 String getURLPkgPrefixes() 
 public String getUserName() 
 protected Object lookup(Context ctx,
    String name) throws NamingException 
 public boolean requiresLayout() 
    The JMSAppender sends serialized events and consequently does not require a layout.
 public  void setInitialContextFactoryName(String initialContextFactoryName) 
 public  void setLocationInfo(boolean locationInfo) 
    If true, the information sent to the remote subscriber will include caller's location information. By default no location information is sent to the subscriber.
 public  void setPassword(String password) 
    The paswword to use when creating a topic session.
 public  void setProviderURL(String providerURL) 
 public  void setSecurityCredentials(String securityCredentials) 
 public  void setSecurityPrincipalName(String securityPrincipalName) 
 public  void setTopicBindingName(String topicBindingName) 
    The TopicBindingName option takes a string value. Its value will be used to lookup the appropriate Topic from the JNDI context.
 public  void setTopicConnectionFactoryBindingName(String tcfBindingName) 
    The TopicConnectionFactoryBindingName option takes a string value. Its value will be used to lookup the appropriate TopicConnectionFactory from the JNDI context.
 public  void setURLPkgPrefixes(String urlPkgPrefixes) 
 public  void setUserName(String userName)