logging-log4cxx-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Prosenjit Sinha" <prosenjit.sa...@wipro.com>
Subject RE: Problem with WriterAppender
Date Tue, 11 Jan 2005 05:34:35 GMT



Thanks Cart for your reply.  But we need to stay with 0.9.7.  So I will have
to get the logString from OStream *os variable only.







Regards

Prosenjit Sinha

Project Engineer



Plot No:2,MIDC,

Pune Infotech Park,

Hinjewadi,Pune-411057,India

Tel: 09325502750

"Simplicity is the ultimate sophistication."





Hi,

                I am facing a problem with the WriterAppender. I am
developing a custom appender class derived from WriterAppender class.  I
have initialized the custom appender class as follows:



                log4cxx::LayoutPtr layout(new log4cxx::PatternLayout(""));

       istringstream in_bis(ios_base:: in | ios_base::out |

                          ios_base::app );

       std::ostream *os = new std::ostream(in_bis.rdbuf());

       CCustomLogClass *my = new CCustomLogClass (layout,os);



CCustomLogClass has been derived from WriterAppender. Then I added this
custom appender class to the root logger and called debug, info, error
function with some log strings on root logger. I have set the immediateFlush
variable of the custom appender class as FALSE.



To extract the logging information in my custom appender class I have
written the following code:



       std::string str(10u,' ');

       std::stringbuf *pStream = new std::stringbuf;

       os->rdbuf(pStream);

       pStream->str(str);



I tried to get the logging string from str.c_str() function. But this
function was always returning NULL. Can anybody tell what else need to be
done to extract logging string or I am doing something wrong here.









-----Original Message-----
From: Curt Arnold [mailto:carnold@apache.org]
Sent: 2005年1月10日 22:34
To: Log4CXX User
Subject: Re: Problem with WriterAppender



The implementation of WriterAppender is radically different in the CVS

and an appender written as you described will not be compatible with

the next development snapshot (the long awaited 0.9.8)



Unless you have a compelling reason to stay with 0.9.7, I would

strongly suggest that you write your custom appender against the CVS.

In the CVS, all that would be necessary is to overload the appropriate

subAppend method.  The appropriate method would depend on where you

would like to intercept the rendering, for example, would you like the

message as an LogString or as a byte array in the specified encoding.





Confidentiality Notice 

The information contained in this electronic message and any attachments to this message are
intended
for the exclusive use of the addressee(s) and may contain confidential or privileged information.
If
you are not the intended recipient, please notify the sender at Wipro or Mailadmin@wipro.com
immediately
and destroy all copies of this message and any attachments.
Mime
View raw message