Customisable logger where most things are optional.