provide an optional logger