What do you think about extracting these builder methods to separate classes? That way each class has responsibility for knowing about the idiosyncracies of that library and this class knows how to look up the builders and execute them - SRP type of thing.

I guess I'm suggesting that this could be a Factory Factory, but I'd never admit that ;)

```ruby
def self.build_logger(type = :logger, opts = {})
  factory = factory_for type
  factory.build opts
end

def self.factory_for(type)
  Macmillan::Utils::Logger.const_get "#{type}_factory".classify
rescue NameError
  Macmillan::Utils::Logger::MissingLoggerTypeFactory
end
```