void
LoggerImpl::logMessage(MessageLevel level,const string& message)
{
messages_[level].push_back(string(message));
cout << levelDesc(level) << " " << message << endl;
} // end LoggerImpl::logMessage(...
void LoggerImpl::logMessage(MessageLevel level,
const string& fileName,
long lineNumber,
const string& message)
{
strstream s;
s << fileName << ", line " << lineNumber
<< ": " << message << ends;
messages_[level].push_back(string(s.str())); // freezes s
s.rdbuf()->freeze(0); // unfreezes s
cout << levelDesc(level) << " "
<< fileName << ", line " << lineNumber << ": "
<< message << endl;
} // end LoggerImpl::logMessage(...
void LoggerImpl::logMessage(MessageLevel level,
const string& className,
const string& methodName,
const string& message)
{
messages_[level].push_back(string(className)
+ string("::")
+ string(methodName)
+ string("(): ")
+ string(message));
cout << levelDesc(level) << " "
<< className << "::" << methodName << ": "
<< message << endl;
} // end LoggerImpl::logMessageAndMethod(...
vector<string,allocator> LoggerImpl::messages(MessageLevel level)
{
vector<string,allocator> messages;
if (messages_[level].size())
for (vector<string,allocator>::iterator it
= messages_[level].begin();
it != messages_[level].end();
it++)
messages.push_back(*it);
return messages;
} // end LoggerImpl::messages(...
End of Listing