Also, wouldn't this work better as a collection of singletons? init('log1') should always return the same instance, if so then getInstance is a much better name for this method.