private static void _loadConf(String confFilename, Map<String, String> args) throws ConfigurationException {
		System.out.println(AppConst.IDENTATOR + "load application configuration - start");
		Map<String, String> modifiedProperties = new TreeMap<String, String>();
		try {
			props = new Properties(ResourcesUtils.loadPropertiesFile(confFilename));

			// update the properties values using system properties and user arguments
			modifiedProperties.putAll(updateProperties(System.getProperties().entrySet()));
			if (null != args) modifiedProperties.putAll(updateProperties(args.entrySet()));
			if (modifiedProperties.size() > 0) {
				for (Entry<String, String> entry : modifiedProperties.entrySet()) {
					System.out.println(AppConst.IDENTATOR + AppConst.IDENTATOR + entry.getKey() + "=" + entry.getValue());
				}
			}

			setReasonerVersion(props.getProperty(ConfTag.REASONER_VERSION));

			String logLevelStr = props.getProperty(ConfTag.LOG_LEVEL);
			if (logLevelStr == null) {
				logLevelStr = props.getProperty(ConfTag.LOG_LEVEL, "INFO");
			}
			Level l = Utilities.getLogLevel(logLevelStr);
			if (l != null) logLevel = l;

			System.out.println(AppConst.IDENTATOR + "load application configuration - end");
		} catch (Exception e) {
			e.printStackTrace();
			throw new ConfigurationException("exception throw while configurating application context", e);
		}
	}