Warning: may be from pre 1.4, but should still be the right direction...
Two ways:
1) Use the collection registration
var builder = new ContainerBuilder();
builder.RegisterCollection<ILogger>()
.As<IEnumerable<ILogger>>();
builder.Register<ConsoleLogger>()
.As<ILogger>()
.MemberOf<IEnumerable<ILogger>>();
builder.Register<EmailLogger>()
.As<ILogger>()
.MemberOf<IEnumerable<ILogger>>();
Then:
var loggers = container.Resolve<IEnumerable<ILogger>>();
which gives you an IEnumerable.
or
2) You can use the ImplicitCollectionSupport module, which will make your code above work as listed - just add the registerModule call...
builder.RegisterModule(new ImplicitCollectionSupportModule());
builder.Register(component1).As<ILogger>;
builder.Register(component2).As<ILogger>;
Then resolve a collection of ILogger rather than looking for resolving all.
var loggers = container.Resolve<IEnumerable<ILogger>>();
which gives you an IEnumerable, again.