|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
|
|
|
Fwd: logString issue...please helpstring logfile = "logfile1.log"; printf( "\n second printf");log4cxx::BasicConfigurator::configure();
//configure(log4cxx::AppenderPtr(fileAppender)); log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("logger");
logger->setLevel(log4cxx::Level::getAll()); logger->addAppender(fileAppender); LOG4CXX_INFO(logger,"IN main method");
Now the file is created but does not write anything into it.... or does not print "second printf"
the program just aborts,after creating the file...
please help..i need this to be done today........thanks....
---------- Forwarded message ---------- From: ss ak <ssak22@...> Date: Tue, Aug 11, 2009 at 9:43 AM Subject: logString issue...please help To: log4cxx-user@... string logfile = "logfile.log"; fileAppender->setAppend(true);
fileAppender->setFile(logfile.c_str()); logger->setLevel(log4cxx::Level::getAll()); logger->addAppender(fileAppender); I get this error...please help
error C2664: 'void log4cxx::FileAppender::setFile(const log4cxx::LogString &)' : cannot convert parameter 1 from 'const char *' to 'const log4cxx::LogString &' 1> Reason: cannot convert from 'const char *' to 'const log4cxx::LogString' 1> No constructor could take the source type, or constructor overload resolution was ambiguous 1 |
|
|
Re: logString issue...please helpOn Aug 11, 2009, at 2:12 PM, ss ak wrote: > string logfile = "logfile1.log"; > printf("\n in main () "); > > log4cxx::FileAppenderPtr fileAppender = new > log4cxx::FileAppender(log4cxx::LayoutPtr(new > log4cxx > ::SimpleLayout > ()),log4cxx::helpers::Transcoder::decode(logfile.c_str()),false); > > log4cxx::helpers::Pool p; > fileAppender->activateOptions(p); > > printf( > > "\n second printf"); > log4cxx::BasicConfigurator::configure(); > //configure(log4cxx::AppenderPtr(fileAppender)); > log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("logger"); > logger->setLevel(log4cxx::Level::getAll()); > logger->addAppender(fileAppender); > LOG4CXX_INFO(logger,"IN main method"); > > Now the file is created but does not write anything into it.... > or does not print "second printf" > the program just aborts,after creating the file... > > please help..i need this to be done today........thanks.... You don't mention the platform, guessing Windows. There is the possibility of shutting down Apache Portable Runtime before shutting down log4cxx if the first thing you do is to create a Ptr without initializing it. I wanted to avoid the cost of checking for APR startup in every Ptr constructor, but it seems like this hits a lot of people. Probably should go ahead and change that and take any performance hit. The main thing is to do: FileAppenderPtr fileAppender(new FileAppender...) instead of FileAppenderPtr fileAppender = new Appender... The first constructs the FileAppender first then initializes the pointer. The other constructs the pointer first then the FileAppender. Since destruction happens in reverse order of construction, you want to construct the FileAppender first. > ---------- Forwarded message ---------- > From: ss ak <ssak22@...> > Date: Tue, Aug 11, 2009 at 9:43 AM > Subject: logString issue...please help > To: log4cxx-user@... > > > string logfile = "logfile.log"; > log4cxx::helpers::Transcoder::decode("logfile.log",12,logstr); > log4cxx::BasicConfigurator::configure(); > log4cxx::FileAppenderPtr fileAppender(new log4cxx::FileAppender()); > //log4cxx::Layout(new log4cxx::SimpleLayout()))); > > fileAppender->setAppend(true); > fileAppender->setFile(logfile.c_str()); > logger->setLevel(log4cxx::Level::getAll()); > logger->addAppender(fileAppender); > > I get this error...please help > > error C2664: 'void log4cxx::FileAppender::setFile(const > log4cxx::LogString &)' : cannot convert parameter 1 from 'const char > *' to 'const log4cxx::LogString &' > > 1> Reason: cannot convert from 'const char *' to 'const > log4cxx::LogString' > > 1> No constructor could take the source type, or constructor > overload resolution was ambiguous > > 1 > > > string logfile = "logfile.log"; > log4cxx::helpers::Transcoder::decode("logfile.log",12,logstr); > log4cxx::BasicConfigurator::configure(); > log4cxx::FileAppenderPtr fileAppender(new log4cxx::FileAppender()); > //log4cxx::Layout(new log4cxx::SimpleLayout()))); > > fileAppender->setAppend(true); > fileAppender->setFile(logfile.c_str()); > logger->setLevel(log4cxx::Level::getAll()); > logger->addAppender(fileAppender); If all you wanted to do is explicitly set the file name, you should have done: fileAppender->setFile(LOG4CXX_STR("logfile.log")); As long as the constant only contains ASCII characters it will use either the proper type of literal or do a transcoding. |
|
|
Re: logString issue...please helpI changed as said...but still have the same problem..it creates a logfile but no messages in the file...
log4cxx::FileAppenderPtr fileAppender(new log4cxx::FileAppender(log4cxx::LayoutPtr(new log4cxx::SimpleLayout()),log4cxx::helpers::Transcoder::decode(logfile.c_str()),false));
log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("logger");
log4cxx::BasicConfigurator::configure();
logger->setLevel(log4cxx::Level::getAll()); logger->addAppender(fileAppender);
logger->info("APPS INITIALIZED");
LOG4CXX_INFO(logger,"IN main method");
logger->trace("tracing"); fileAppender->close(); printf("\n file name : %s","got here");
am i missing something...please let me know...
thanks in advance
On Tue, Aug 11, 2009 at 8:00 PM, Curt Arnold <carnold@...> wrote:
|
| Free embeddable forum powered by Nabble | Forum Help |