void Hierarchy::shutdown() { LoggerPtr root = getRootLogger(); // begin by closing nested appenders root->closeNestedAppenders(); LoggerList loggers = getCurrentLoggers(); LoggerList::iterator it, itEnd = loggers.end(); for (it = loggers.begin(); it != itEnd; it++) { LoggerPtr& logger = *it; logger->closeNestedAppenders(); } // then, remove all appenders root->removeAllAppenders(); for (it = loggers.begin(); it != itEnd; it++) { LoggerPtr& logger = *it; logger->removeAllAppenders(); } }