You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by Peter Cipriano <ci...@us.ibm.com> on 2003/10/24 17:31:13 UTC

JMSAppender and the onMessage Impl

I have a working log4j configuration for the File Appenders.  With a bit 
of help from this newsgroup I got the most of the JMSAppender  working 
using Websphere 5 with a MDB.  log4j is moving the data to the Websphere 
embedded Queue (Topic) however when the onMessage impl of my MDB tried to 
convert the sent log4j message passed in I get a Class cast exception.

The weird thing is if I use a straight topic call it works fine:

String msg = "Test Message";
topicPublisher.publish(msg);

Here is a code snipet.  I have looked at other posts and have seen this 
type of usage. Not sure why I am different here

public void onMessage(javax.jms.Message message) {
 
        try{
                ...
                // Class Cast exception on the following line only from 
log4j
                TextMessage textMessage = null;
                textMessage = (TextMessage)message;
                if(printStream==null){
                        setPrintStream(getLogFileName());
                }
                String msg = textMessage.getText();
                if (!msg.equals("")){
                        printStream.println(msg);
                        printStream.flush();
                }
                }catch(JMSException e){
                        ...
                        System.out.println(e.getLocalizedMessage());
                }
        }


# Log4j Properties
#------------------

log4j.rootLogger= DEBUG, JMS1

log4j.appender.JMS1                                             = 
org.apache.log4j.net.JMSAppender
log4j.appender.JMS1.TopicBindingName                    = jms/ESMTOPIC
log4j.appender.JMS1.TopicConnectionFactoryBindingName = jms/ESMTCF

log4j.appender.JMS1.layout                              = 
org.apache.log4j.PatternLayout
log4j.appender.JMS1.layout.ConversionPattern    = [%-20d{M/d/yy 
HH:mm:ss.sss z}] %-25t:%-5p %-30c - %m%n

Right now I commented out the TestMessage lines and just log the actual object. I have to at least prove to the powers at 
be I am logging something.

MS Message class: jms_object
  JMSType:         null
  JMSDeliveryMode: 2
  JMSExpiration:   0
  JMSPriority:     4
  JMSMessageID:    ID:414d51205741535f6c6f63616c686f737e43993f20000a01
  JMSTimestamp:    1067008958020
  JMSCorrelationID:ID:414d51205741535f6c6f63616c686f737e43993f20000804
  JMSDestination:  topic://MYTOPIC?brokerVersion=1
  JMSReplyTo:      null
  JMSRedelivered:  false
  JMS_IBM_PutDate:20031024
  JMSXAppID:WAS_localhost_server1 
  JMS_IBM_Format: 
  JMS_IBM_PutApplType:26
  JMS_IBM_MsgType:8
  JMSXUserID:Administrato
  JMS_IBM_PutTime:15223814
  JMSXDeliveryCount:1
class org.apache.log4j.spi.LoggingEvent

JMS Message class: jms_object
  JMSType:         null
  JMSDeliveryMode: 2
  JMSExpiration:   0
  JMSPriority:     4
  JMSMessageID:    ID:414d51205741535f6c6f63616c686f737e43993f20000a03
  JMSTimestamp:    1067008958200
  JMSCorrelationID:ID:414d51205741535f6c6f63616c686f737e43993f20000804
  JMSDestination:  topic://MYTOPIC?brokerVersion=1
  JMSReplyTo:      null
  JMSRedelivered:  false
  JMS_IBM_PutDate:20031024
  JMSXAppID:WAS_localhost_server1 
  JMS_IBM_Format: 
  JMS_IBM_PutApplType:26
  JMS_IBM_MsgType:8
  JMSXUserID:Administrato
  JMS_IBM_PutTime:15223821
  JMSXDeliveryCount:1
class org.apache.log4j.spi.LoggingEvent


Regards,

Peter Cipriano
Staff Software Engineer