A customisable, component-based logger