@Override
	public final Configuration readConfiguration() throws ReaderException {
		try {
			Configuration config = new Configuration();
			Properties properties = new Properties();
			FileInputStream configFile;
			configFile = new FileInputStream(this.filePath);
			properties.load(configFile);
			config.setLevel(this.getPropertyValue(properties, LEVEL_TAG, DEFAULT_LEVEL));
			config.setMessageFormat(this.getPropertyValue(properties, MESSAGE_FORMAT_TAG, DEFAULT_MESSAGE_FORMAT));
			config.setMessageSeparator(this.getPropertyValue(properties, MESSAGE_SEPARATOR_TAG, null));
			config.setLogToFiles(this.getLogToFilesPropertyValue(properties));
			config.setLogToConsole(Boolean.valueOf(this.getPropertyValue(properties, LOG_TO_CONSOLE_TAG, DEFAULT_CONSOLE)));
			config.setCustomOutputs(this.getCustomOutputsPropertyValue(properties));
			config.setRegExFilter(this.getPropertyValue(properties, REGEX_FILTER_TAG, null));
			config.setCustomFilter(this.getCustomFilterPropertyValue(properties));
			configFile.close();
			return config;
		} catch (IOException e1) {
			throw new ReaderException();
		}
	}