Hold logger by base type instead of derived, to avoid needless upcasts