All,

Actually it does work, my mistake :   -  )

matt
---------------------- Forwarded by Matthew Taylor/UK/INTEGRIS_EU on
21/11/2001 13:54 ---------------------------

Matthew Taylor
21/11/2001 13:50
Integris (Hemel Hempstead)
Telephone: 01442 884011




To:   "Log4J Users List" <[EMAIL PROTECTED]>
cc:

Subject:  Re: WriterAppender problem  (Document link: Matthew Taylor)

Kevin,

I know this my be a unsuitable place to continue this discussion.....

I have changed the code like you suggested, and still the String pulled
from the stream is null!


The bytestream setup class now looks like:

..
..
public ByteStreamSetup() {

    byteOut = new ByteArrayOutputStream();

    myOutput = new BufferedWriter( new OutputStreamWriter(byteOut) );
  }


  public ByteArrayInputStream getInStream() {

    byteIn = new ByteArrayInputStream(byteOut.toByteArray());

    return byteIn;

  }

the sendjmsmessage mehtod now does this

 protected boolean sendJmsMessage() {

    ByteArrayInputStream byteIn = setup.getInStream();
    BufferedReader myInput = new BufferedReader ( new InputStreamReader(byteIn) );

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


The other code is still the same!

Regards

matt

ps do u live/work in the UK then??





Kevin Steppe <[EMAIL PROTECTED]> on 15/11/2001 21:38:29

Please respond to "Log4J Users List" <[EMAIL PROTECTED]>

To:   Log4J Users List <[EMAIL PROTECTED]>
cc:

Subject:  Re: WriterAppender problem



Matthew,

    The problem in in your ByteStreamSetup class.  You wrap
byteIn around byteOut during construction of the object.
This causes
byteIn to wrap the btye array held by byteOut at
*construction* time -- when the array is null of course.  I
moved the byteIn
construction (byteIn = new
ByteArrayInputStream(byteOut.toByteArray());)  to
getInStream() and it works fine.  You might consider
using PipedWriter/Reader pair rather than all that byte
array confusion if you really are passing strings around.

Kevin

ps. if you are hiring, I'm looking for work



[EMAIL PROTECTED] wrote:
>
> 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