Allows logger to be passed in from dependent callers. For logging directly from RecursiveExtractor we should use Serilog.