Can anyone find the problem here?

I have a writer appender that writes to a bytearrayoutputstream.
I have a bytearrayinputstream wrapped in a bufferedreader that reads the
logged message from the stream once it has been logged.
However, my stream is empty, or at least the string conversion returns
null.

My code is :

BufferedWriter outputStream = setup.getOutStream();

cat = (AuditCategory) AuditCategory.getInstance(classFQN);

PatternLayout logLayout = new PatternLayout();

ConsoleAppender consoleApp = new ConsoleAppender(logLayout);
WriterAppender writerApp = new WriterAppender(logLayout, outputStream);

consoleApp.setThreshold(AuditLogPriority.DEBUG)
writerApp.setThreshold(AuditLogPriority.AUDIT);

cat.addAppender(consoleApp);
cat.addAppender(writerApp);

To setup the category with the correct appenders.

Then:

public void audit(java.lang.Object message) {
    System.out.println("message in audit method = " + message.toString());
    cat.audit(message);
    sendJmsMessage();
  }

  private void sendJmsMessage() {


    ByteArrayInputStream byteIn = setup.getInStream();

    BufferedReader myInput = new BufferedReader ( new InputStreamReader(byteIn) );

    try {System.out.println(myInput.readLine());}  // !!!!!!!!This returns null 
here!!!!!!!!!
    catch (Exception e){}

    String message = new String();

    try {
      // read the now characters and convert to string
      message = myInput.readLine();
    }
    catch (IOException e) {
      System.out.println ("Exception: " + e);
    }
    System.out.println (":::::::::::::::message == " + message);

    JMSProducer sendJms = new JMSProducer(message);
  }

With the arrayoutputstream stuff being done in  aseperate class:

public ByteStreamSetup() {

    // initialise the output stream
    byteOut = new ByteArrayOutputStream();
    // wrap the OP stream in the writer
    myOutput = new BufferedWriter( new OutputStreamWriter(byteOut) );

    // get the buffer contents and read it into our stream reader, wrapped in a
    // buffered reader which converts a stream of bytes to charatcers in one.
    byteIn = new ByteArrayInputStream(byteOut.toByteArray());

    //myInput = new BufferedReader ( new InputStreamReader(byteIn) );
  }

  public BufferedWriter getOutStream() {
    return myOutput;
  }

  public ByteArrayInputStream getInStream() {
    //return myInput;
    return byteIn;
  }

Is this a WriterAppender problem???
I can't work out where my message is getting lost??

Any ideas??

cheers
matt


**************************************************************************
Privileged, confidential and/or copyright information may be contained in
this e-mail. This e-mail is for the use only of the intended addressee. If
you are not the intended addressee, or the person responsible for
delivering it to the intended addressee, you may not copy, forward,
disclose or otherwise use it or any part of it in any way whatsoever. To do
so is prohibited and may be unlawful.
If you receive this e-mail by mistake please advise the sender immediately
by using the reply facility in your e-mail software.

Bull Information Systems Limited may monitor the content of e-mails sent
and received via its network for the purposes of ensuring compliance with
its policies and procedures.

This message is subject to and does not create or vary any contractual
relationship between Bull Information Systems Limited and you.

Bull Information Systems Limited. Registered Office: Computer House, Great
West Road, Brentford, Middlesex TW8 9DH. Registered in England.
Registration Number: 2017873

Thank you.
**************************************************************************


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to