public class Logger { private static int loggerCount = 0; private final int logLevel; private Logger(int logLevel) throws IllegalArgumentException { if(logLevel < 0 || logLevel > 10) { throw new IllegalArgumentException("logLevel can only take values 0 to 10"); } this.logLevel = logLevel; } public static Logger createInstance(int logLevel) { Logger retObj = null; try { retObj = new Logger(logLevel); } finally { loggerCount++; } return retObj; } }