Ejemplo n.º 1
0
void LoggerXmlParser::parseLogFile(Element* style) {
	this->loggerStyle = LoggerManager::LOGFILE;

	ticpp::Iterator< ticpp::Node > child;
	child = child.begin(style);
	while (child != child.end()) {
		Element* elem;
		string nameElem;
		string nameAtt;
		string valueStr;

		if (child.Get()->Type() == TiXmlNode::COMMENT) {
			child++;
			continue;
			/* It's a comment... just ignore*/
		}

		child->GetValue(&nameElem);
		if (nameElem != "styleParam") {
			throw LoggerException(
					"Error during parser xmlFile. A invalid element was found in a Style.",
					"cpputil::Logger::LoggerXmlParser",
					"void parseLogFile(Element*)");
		}

		elem = child->ToElement();
		nameAtt = elem->GetAttribute("name");
		if (nameAtt == "writemode") {
			elem->GetText(&valueStr);
#ifdef PARSER_DEBUG
			cout << "\t\t\twritemode= " << valueStr << endl;
#endif
			if (valueStr == "overwrite") {
				writemode = LoggerLogFile::OVERWRITE_FILE;
			} else if (valueStr == "append") {
				writemode = LoggerLogFile::APPEND_FILE;
			} else {
				throw LoggerException(
						"Error during parser xmlFile. A invalid writemode was specified.",
						"cpputil::Logger::LoggerXmlParser",
						"void parseLogFile(Element*)");
			}
		} else 	if (nameAtt == "filename") {
			elem->GetText(&valueStr);
#ifdef PARSER_DEBUG
			cout << "\t\t\tfilename= " << valueStr << endl;
#endif
			logfileName = valueStr;
		} else {
			throw LoggerException(
					"Error during parser xmlFile. A invalid parameter for logfile style was found.",
					"cpputil::Logger::LoggerXmlParser",
					"void parseLogFile(Element*)");
		}
		child++;
	}

}
Ejemplo n.º 2
0
void LoggerXmlParser::parseBlockedClasses(Element* blockedClasses) {
	ticpp::Iterator< ticpp::Node > child;
	child = child.begin(blockedClasses);
	while (child != child.end()) {
		string name;
		string value;

		if (child.Get()->Type() == TiXmlNode::COMMENT) {
			child++;
			continue;
			/* It's a comment... just ignore*/
		}

		child->GetValue(&name);
		if (name == "class") {
			child->ToElement()->GetText(&value);
#ifdef PARSER_DEBUG
			cout << "\t\t\tclassName= " << value << endl;
#endif
			this->blockedClasses->insert(value);
		} else {
			throw LoggerException(
					"Error during parser xmlFile. A invalid element was found in a BlockedClasses.",
					"cpputil::Logger::LoggerXmlParser",
					"void parseBlockedClasses(Element*)");
		}
		child++;
	}
}
Ejemplo n.º 3
0
    FileHandler::FileHandler(std::string filename_):jlogger::
	StreamHandler() {
	jcommon::Object::SetClassName("jlogger::FileHandler");

	try {
	    _file = new jio::File(filename_);
	}
	catch           (jcommon::RuntimeException & e) {
	    throw           LoggerException(e.what());
	}
    }
Ejemplo n.º 4
0
void Logger::unregisterClass(Loggable *loggable) {
	map<Loggable*, string>::iterator it;
	it = loggableMap->find(loggable);
	if (it == loggableMap->end()) {
		throw LoggerException(
				"Trying to unregister a not registrad Loggable instance!",
				"cpputil::logger::Logger",
				"unregisterClass(Loggable*)");
	}
	loggableMap->erase(it);
}
Ejemplo n.º 5
0
Logger::Logger(LoggerLvl loggerLvl) {
	if (loggerLvl > FATAL || loggerLvl < TRACE) {
		throw LoggerException(
				"Trying to set a invalid logger level value!",
				"cpputil::logger::Logger",
				"[Constructor] Logger(LoggerLvl)");
	}
	this->loggerLvl = loggerLvl;
	loggableMap = new map<Loggable*, string>();
	logManager = NULL;
}
Ejemplo n.º 6
0
void Logger::registerClass(Loggable* loggable, string completeClassName) {
	map<Loggable*, string>::iterator it;
	it = loggableMap->find(loggable);
	if (it != loggableMap->end()) {
		throw LoggerException(
				"Trying to register the same Loggable instance twice!",
				"cpputil::logger::Logger",
				"registerClass(Loggable*, string)");
	}
	//TODO: verificar se o nome da classe é válido
	loggableMap->insert(pair<Loggable*, string>(loggable, completeClassName) );
}
Ejemplo n.º 7
0
LoggerManager::RegionalOpt LoggerManager::stringToRegionalOpt(string str) {
	string aux = Functions::toUpperCase(str);
	if (aux == "USA") {
		return LoggerManager::USA;
	} else if (aux == "BRAZIL") {
		return LoggerManager::BRAZIL;
	} else {
		throw LoggerException(
				"Trying to covert a invalid string to RegionalOpt",
				"cpputil::logger::LoggerManager",
				"stringToRegionalOpt(string)");
	}
}
Ejemplo n.º 8
0
LoggerColor::Color LoggerColor::stringToColor(string str) {
	if (str == "black" || str== "BLACK") {
		return LoggerColor::BLACK;
	} else if (str == "red" || str== "RED") {
		return LoggerColor::RED;
	} else if (str == "green" || str== "GREEN") {
		return LoggerColor::GREEN;
	} else if (str == "brown" || str== "BROWN") {
		return LoggerColor::BROWN;
	} else if (str == "blue" || str== "BLUE") {
		return LoggerColor::BLUE;
	} else if (str == "magenta" || str== "MAGENTA") {
		return LoggerColor::MAGENTA;
	} else if (str == "cyan" || str== "CYAN") {
		return LoggerColor::CYAN;
	} else if (str == "gray" || str== "GRAY") {
		return LoggerColor::GRAY;
	} else if (str == "dark_gray" || str== "DARK_GRAY") {
		return LoggerColor::DARK_GRAY;
	} else if (str == "light_red" || str== "LIGHT_RED") {
		return LoggerColor::LIGHT_RED;
	} else if (str == "light_green" || str== "LIGHT_GREEN") {
		return LoggerColor::LIGHT_GREEN;
	} else if (str == "yellow" || str== "YELLOW") {
		return LoggerColor::YELLOW;
	} else if (str == "light_blue" || str== "LIGHT_BLUE") {
		return LoggerColor::LIGHT_BLUE;
	} else if (str == "light_magenta" || str== "LIGHT_MAGENTA") {
		return LoggerColor::LIGHT_MAGENTA;
	} else if (str == "light_cyan" || str== "LIGHT_CYAN") {
		return LoggerColor::LIGHT_CYAN;
	} else if (str == "white" || str== "WHITE") {
		return LoggerColor::WHITE;
	} else if (str == "default" || str== "DEFAULT") {
		return LoggerColor::DEFAULT;
	} else {
		throw LoggerException(
				"Trying to convert a invalid string.",
				"cpputil::logger::Logger",
				"stringToLoggerLvl(string)");
	}

}
Ejemplo n.º 9
0
LoggerManager::LoggerStyle LoggerManager::stringToLoggerStyle(string str) {
	string aux = Functions::toUpperCase(str);
	if (aux == "DEFAULT") {
		return LoggerManager::DEFAULT;
	} else if (aux == "NETWORKSTREAM") {
		return LoggerManager::NETWORKSTREAM;
	} else if (aux == "LOGFILE") {
		return LoggerManager::LOGFILE;
	} else if (aux == "COLOR") {
		return LoggerManager::COLOR;
	} else if (aux == "MULTILOGGER") {
		return LoggerManager::MULTILOGGER;
	} else {
		throw LoggerException(
				"Trying to covert a invalid string to Logger Style",
				"cpputil::logger::LoggerManager",
				"stringToLoggerStyle(string)");
	}
}
Ejemplo n.º 10
0
Logger::LoggerLvl Logger::stringToLoggerLvl(string str) {
	if (str == "trace" || str== "TRACE") {
		return Logger::TRACE;
	} else if (str == "debug" || str== "DEBUG") {
		return Logger::DEBUG;
	} else if (str == "info" || str== "INFO") {
		return Logger::INFO;
	} else if (str == "warning" || str== "WARNING") {
		return Logger::WARNING;
	} else if (str == "error" || str== "ERROR") {
		return Logger::ERROR;
	} else if (str == "fatal" || str== "FATAL") {
		return Logger::TRACE;
	} else {
		throw LoggerException(
				"Trying to convert a invalid string.",
				"cpputil::logger::Logger",
				"stringToLoggerLvl(string)");
	}
}
Ejemplo n.º 11
0
void LoggerXmlParser::parseColor(Element* style) {
	this->loggerStyle = LoggerManager::COLOR;

	colors = LoggerColor::getDefaultColors();

	ticpp::Iterator< ticpp::Node > child;
	child = child.begin(style);
	while (child != child.end()) {
		Element* elem;
		string nameElem;
		string nameAtt;
		string valueStr;
		int valueInt;

		if (child.Get()->Type() == TiXmlNode::COMMENT) {
			child++;
			continue;
			/* It's a comment... just ignore*/
		}

		child->GetValue(&nameElem);
		if (nameElem != "styleParam") {
			throw LoggerException(
					"Error during parser xmlFile. A invalid element was found in a Style.",
					"cpputil::Logger::LoggerXmlParser",
					"void parseNetworkStream(Element*)");
		}

		elem = child->ToElement();
		nameAtt = elem->GetAttribute("name");
		if (nameAtt == "traceColor") {
			elem->GetText(&valueStr);
#ifdef PARSER_DEBUG
			cout << "\t\t\ttraceColor= " << valueStr << endl;
#endif
			colors[(int) Logger::TRACE] = LoggerColor::stringToColor(valueStr);
#ifdef PARSER_DEBUG
			cout << "\t\t\tcolor after translate= " << LoggerColor::colorToString(colors[(int) Logger::TRACE]) << endl;
#endif
		} else if (nameAtt == "debugColor") {
			elem->GetText(&valueStr);
#ifdef PARSER_DEBUG
			cout << "\t\t\tdebugColor= " << valueStr << endl;
#endif
			colors[(int) Logger::DEBUG] = LoggerColor::stringToColor(valueStr);
#ifdef PARSER_DEBUG
			cout << "\t\t\tdebug after translate= " << LoggerColor::colorToString(colors[(int) Logger::DEBUG]) << endl;
#endif
		} else 	if (nameAtt == "infoColor") {
			elem->GetText(&valueStr);
#ifdef PARSER_DEBUG
			cout << "\t\t\tinfoColor= " << valueStr << endl;
#endif
			colors[(int) Logger::INFO] = LoggerColor::stringToColor(valueStr);
		} else 	if (nameAtt == "warningColor") {
			elem->GetText(&valueStr);
#ifdef PARSER_DEBUG
			cout << "\t\t\twarningColor= " << valueStr << endl;
#endif
			colors[(int) Logger::WARNING] = LoggerColor::stringToColor(valueStr);
		} else 	if (nameAtt == "errorColor") {
			elem->GetText(&valueStr);
#ifdef PARSER_DEBUG
			cout << "\t\t\terrorColor= " << valueStr << endl;
#endif
			colors[(int) Logger::ERROR] = LoggerColor::stringToColor(valueStr);
		} else 	if (nameAtt == "fatalColor") {
			elem->GetText(&valueStr);
#ifdef PARSER_DEBUG
			cout << "\t\t\tfatalColor= " << valueStr << endl;
#endif
			colors[(int) Logger::FATAL] = LoggerColor::stringToColor(valueStr);
		} else {
			throw LoggerException(
					"Error during parser xmlFile. A invalid parameter for networkstream style was found.",
					"cpputil::Logger::LoggerXmlParser",
					"void parseNetworkStream(Element*)");
		}
		child++;
	}

}
Ejemplo n.º 12
0
void LoggerXmlParser::parseNetworkStream(Element* style) {
	this->loggerStyle = LoggerManager::NETWORKSTREAM;

	ticpp::Iterator< ticpp::Node > child;
	child = child.begin(style);
	while (child != child.end()) {
		Element* elem;
		string nameElem;
		string nameAtt;
		string valueStr;
		int valueInt;

		if (child.Get()->Type() == TiXmlNode::COMMENT) {
			child++;
			continue;
			/* It's a comment... just ignore*/
		}

		child->GetValue(&nameElem);
		if (nameElem != "styleParam") {
			throw LoggerException(
					"Error during parser xmlFile. A invalid element was found in a Style.",
					"cpputil::Logger::LoggerXmlParser",
					"void parseNetworkStream(Element*)");
		}

		elem = child->ToElement();
		nameAtt = elem->GetAttribute("name");
		if (nameAtt == "protocol") {
			elem->GetText(&valueStr);
#ifdef PARSER_DEBUG
			cout << "\t\t\tprotocol= " << valueStr << endl;
#endif
			if (valueStr == "udp") {
				protocol = LoggerNetworkStream::UDP;
			} else if (valueStr == "tcp") {
				protocol = LoggerNetworkStream::TCP;
			} else {
				throw LoggerException(
						"Error during parser xmlFile. A invalid network protocol was specified.",
						"cpputil::Logger::LoggerXmlParser",
						"void parseNetworkStream(Element*)");
			}
		} else 	if (nameAtt == "ipAddress") {
			elem->GetText(&valueStr);
#ifdef PARSER_DEBUG
			cout << "\t\t\tipAddress= " << valueStr << endl;
#endif
			ipAddress = valueStr;
		} else 	if (nameAtt == "portNumber") {
			elem->GetText(&valueInt);
#ifdef PARSER_DEBUG
			cout << "\t\t\tportNumber= " << valueInt << endl;
#endif
			portNumber = valueInt;
		} else {
			throw LoggerException(
					"Error during parser xmlFile. A invalid parameter for networkstream style was found.",
					"cpputil::Logger::LoggerXmlParser",
					"void parseNetworkStream(Element*)");
		}
		child++;
	}
}
Ejemplo n.º 13
0
void LoggerXmlParser::parseDocument() {
	bool hadFoundClasses = false;
	bool hadFoundStyle = false;
	string aux;
	try {
		Document doc(xmlFileName);
		doc.LoadFile();

		Element* first = doc.FirstChildElement();
		first->GetValue(&aux);
#ifdef PARSER_DEBUG
		cout << "\tFirstElement=" << aux << endl;
#endif
		if (aux != "LoggerConfig") {
			throw LoggerException(
					"Error during parser xmlFile. Not found root element LoggerConfig.",
					"cpputil::Logger::LoggerXmlParser",
					"void parseDocument()");
		}

		if (first->HasAttribute("level")) {
			string value = first->GetAttribute("level");
			loggerLvl = Logger::stringToLoggerLvl(value);
#ifdef PARSER_DEBUG
			cout <<"\t\tlevel=" << value << endl;
			cout <<"\t\tlvl After been translated= " << Logger::loggerLvlToString(loggerLvl) << endl;
#endif
		}

		if (first->HasAttribute("region")) {
			string value = first->GetAttribute("region");
			regionalOpt = LoggerManager::stringToRegionalOpt(value);
#ifdef PARSER_DEBUG
			cout <<"\t\tregionalOpt= " << value << endl;
			cout <<"\t\tregionOpt After been translated= " << LoggerManager::regionalOptToString(regionalOpt) << endl;
#endif
		}

		ticpp::Iterator< ticpp::Node > child;
		child = child.begin(first);
		while (child != child.end()) {
			string name;

			if (child.Get()->Type() == TiXmlNode::COMMENT) {
				child++;
				continue;
				/* It's a comment... just ignore*/
			}
			child->GetValue(&name);
#ifdef PARSER_DEBUG
			cout <<"\n\tElement name=" << name << endl;
#endif
			if (name == "BlockedClasses" && !hadFoundClasses) {
				hadFoundClasses = true;
				Element* blockedClasses = child->ToElement();
				parseBlockedClasses(blockedClasses);

			} else if (name == "Style" && !hadFoundStyle) {
				hadFoundStyle = true;
				Element* style = child->ToElement();
				if (style->HasAttribute("name")) {
					string valeuAttName = style->GetAttribute("name");
#ifdef PARSER_DEBUG
					cout <<"\t\tStyle name=" << valeuAttName << endl;
#endif

					if (valeuAttName == "default") {
						parseDefault(style);
					} else if (valeuAttName == "networkstream") {
						parseNetworkStream(style);
					} else if (valeuAttName == "logfile") {
						this->parseLogFile(style);
					} else if (valeuAttName == "color") {
						parseColor(style);
					} else if (valeuAttName == "multilogger") {
						//TODO: Implementar o multilogger
					} else {
						throw LoggerException(
								"Error during parser xmlFile. A invalid style name specified.",
								"cpputil::Logger::LoggerXmlParser",
								"void parseDocument()");
					}
				} else {
					throw LoggerException(
							"Error during parser xmlFile. Name attbribute was no specified in Style.",
							"cpputil::Logger::LoggerXmlParser",
							"void parseDocument()");
				}
			} else {
				throw LoggerException(
						"Error during parser xmlFile. A invalid or duplicated element was found.",
						"cpputil::Logger::LoggerXmlParser",
						"void parseDocument()");
			}
			child++;
		}

	} catch (ticpp::Exception& ex) {
		cerr << ex.what() << endl;
		resetDefault();
		throw ex;
	}
}