blob: 2ec5f22c2b5c47430426ab7db600fb539398507d [file] [log] [blame]
#include <log4cxx/level.h>
#include <log4cxx/logger.h>
#include <log4cxx/helpers/exception.h>
using namespace log4cxx;
using namespace log4cxx::helpers;
class dump
{
public:
dump(LoggerPtr logger) : logger(logger) {}
LoggerPtr logger;
};
ostream& operator<<(ostream &os, const dump& dump)
{
os << _T("Logger=") << dump.logger->getName()
<< _T("\tAssignedLevel=") << dump.logger->getLevel().toString()
<< _T("\tInheritedLevel=") << dump.logger->getEffectiveLevel().toString()
<< std::endl;
return os;
}
int main()
{
int result = EXIT_SUCCESS;
try
{
LoggerPtr root = Logger::getRootLogger();
LoggerPtr X = Logger::getLogger(_T("X"));
LoggerPtr XY = Logger::getLogger(_T("X.Y"));
LoggerPtr XYZ = Logger::getLogger(_T("X.Y.Z"));
root->setLevel(Level::getDebugLevel());
if (root->getLevel() != Level::getDebugLevel()
|| root->getEffectiveLevel() != Level::getDebugLevel()
|| X->getLevel() != Level::getOffLevel()
|| X->getEffectiveLevel() != Level::getDebugLevel()
|| XY->getLevel() != Level::getOffLevel()
|| XY->getEffectiveLevel() != Level::getDebugLevel()
|| XYZ->getLevel() != Level::getOffLevel()
|| XYZ->getEffectiveLevel() != Level::getDebugLevel())
{
tcout << dump(root) << dump(X) << dump(XY) << dump(XYZ) << std::endl;
result = EXIT_FAILURE;
}
root->setLevel(Level::getDebugLevel());
X->setLevel(Level::getInfoLevel());
XY->setLevel(Level::getWarnLevel());
XYZ->setLevel(Level::getErrorLevel());
if (root->getLevel() != Level::getDebugLevel()
|| root->getEffectiveLevel() != Level::getDebugLevel()
|| X->getLevel() != Level::getInfoLevel()
|| X->getEffectiveLevel() != Level::getInfoLevel()
|| XY->getLevel() != Level::getWarnLevel()
|| XY->getEffectiveLevel() != Level::getWarnLevel()
|| XYZ->getLevel() != Level::getErrorLevel()
|| XYZ->getEffectiveLevel() != Level::getErrorLevel())
{
tcout << dump(root) << dump(X) << dump(XY) << dump(XYZ) << std::endl;
result = EXIT_FAILURE;
}
root->setLevel(Level::getDebugLevel());
X->setLevel(Level::getInfoLevel());
XY->setLevel(Level::getOffLevel());
XYZ->setLevel(Level::getErrorLevel());
if (root->getLevel() != Level::getDebugLevel()
|| root->getEffectiveLevel() != Level::getDebugLevel()
|| X->getLevel() != Level::getInfoLevel()
|| X->getEffectiveLevel() != Level::getInfoLevel()
|| XY->getLevel() != Level::getOffLevel()
|| XY->getEffectiveLevel() != Level::getInfoLevel()
|| XYZ->getLevel() != Level::getErrorLevel()
|| XYZ->getEffectiveLevel() != Level::getErrorLevel())
{
tcout << dump(root) << dump(X) << dump(XY) << dump(XYZ) << std::endl;
result = EXIT_FAILURE;
}
root->setLevel(Level::getDebugLevel());
X->setLevel(Level::getInfoLevel());
XY->setLevel(Level::getOffLevel());
XYZ->setLevel(Level::getOffLevel());
if (root->getLevel() != Level::getDebugLevel()
|| root->getEffectiveLevel() != Level::getDebugLevel()
|| X->getLevel() != Level::getInfoLevel()
|| X->getEffectiveLevel() != Level::getInfoLevel()
|| XY->getLevel() != Level::getOffLevel()
|| XY->getEffectiveLevel() != Level::getInfoLevel()
|| XYZ->getLevel() != Level::getOffLevel()
|| XYZ->getEffectiveLevel() != Level::getInfoLevel())
{
tcout << dump(root) << dump(X) << dump(XY) << dump(XYZ);
result = EXIT_FAILURE;
}
}
catch(Exception&)
{
result = EXIT_FAILURE;
}
return result;
}