public final void log(final Level level, final String logMsg, final Throwable exception) throws Throwable {
		if (!shouldLog(level)) {
			return;
		}
		String formatedLog = formatter.giveFormat(level, logMsg);
		if (this.shouldFilter(formatedLog)) {
			for (Output output: outputs) {
				try {
					output.write(formatedLog);
				} catch (OutputException e) {
					e.printStackTrace();
					handleException(output.getStringId(), exception);
				}
			}
		}
	}