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@xxxxxxxxxx]
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.