Package org.apache.log4j.net

Source Code of org.apache.log4j.net.JMSSink

package org.apache.log4j.net;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicSession;
import javax.jms.TopicSubscriber;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NameNotFoundException;
import javax.naming.NamingException;
import org.apache.log4j.Category;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.log4j.xml.DOMConfigurator;

public class JMSSink
  implements MessageListener
{
  static Logger logger = Logger.getLogger(JMSSink.class);

  public static void main(String[] paramArrayOfString)
    throws Exception
  {
    if (paramArrayOfString.length != 5)
      usage("Wrong number of arguments.");
    String str1 = paramArrayOfString[0];
    String str2 = paramArrayOfString[1];
    String str3 = paramArrayOfString[2];
    String str4 = paramArrayOfString[3];
    String str5 = paramArrayOfString[4];
    if (str5.endsWith(".xml"))
    {
      new DOMConfigurator();
      DOMConfigurator.configure(str5);
    }
    else
    {
      new PropertyConfigurator();
      PropertyConfigurator.configure(str5);
    }
    new JMSSink(str1, str2, str3, str4);
    BufferedReader localBufferedReader = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Type \"exit\" to quit JMSSink.");
    String str6;
    do
      str6 = localBufferedReader.readLine();
    while (!str6.equalsIgnoreCase("exit"));
    System.out.println("Exiting. Kill the application if it does not exit due to daemon threads.");
  }

  public JMSSink(String paramString1, String paramString2, String paramString3, String paramString4)
  {
    try
    {
      InitialContext localInitialContext = new InitialContext();
      TopicConnectionFactory localTopicConnectionFactory = (TopicConnectionFactory)lookup(localInitialContext, paramString1);
      TopicConnection localTopicConnection = localTopicConnectionFactory.createTopicConnection(paramString3, paramString4);
      localTopicConnection.start();
      TopicSession localTopicSession = localTopicConnection.createTopicSession(false, 1);
      Topic localTopic = (Topic)localInitialContext.lookup(paramString2);
      TopicSubscriber localTopicSubscriber = localTopicSession.createSubscriber(localTopic);
      localTopicSubscriber.setMessageListener(this);
    }
    catch (Exception localException)
    {
      logger.error("Could not read JMS message.", localException);
    }
  }

  public void onMessage(Message paramMessage)
  {
    try
    {
      if ((paramMessage instanceof ObjectMessage))
      {
        ObjectMessage localObjectMessage = (ObjectMessage)paramMessage;
        LoggingEvent localLoggingEvent = (LoggingEvent)localObjectMessage.getObject();
        Logger localLogger = Logger.getLogger(localLoggingEvent.getLoggerName());
        localLogger.callAppenders(localLoggingEvent);
      }
      else
      {
        logger.warn("Received message is of type " + paramMessage.getJMSType() + ", was expecting ObjectMessage.");
      }
    }
    catch (JMSException localJMSException)
    {
      logger.error("Exception thrown while processing incoming message.", localJMSException);
    }
  }

  protected static Object lookup(Context paramContext, String paramString)
    throws NamingException
  {
    try
    {
      return paramContext.lookup(paramString);
    }
    catch (NameNotFoundException localNameNotFoundException)
    {
      logger.error("Could not find name [" + paramString + "].");
    }
    throw localNameNotFoundException;
  }

  static void usage(String paramString)
  {
    System.err.println(paramString);
    System.err.println("Usage: java " + JMSSink.class.getName() + " TopicConnectionFactoryBindingName TopicBindingName username password configFile");
    System.exit(1);
  }
}

/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/thirdparty-all.jar
* Qualified Name:     org.apache.log4j.net.JMSSink
* JD-Core Version:    0.6.0
*/
TOP

Related Classes of org.apache.log4j.net.JMSSink

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.