CreateConnection should take an ILog rather than injecting it via another method. This is because if someone uses the configuration to specify their own connection manager you could get a null ref exception down the track