'Construct a logger instance.
:param job: A reference to the job object this is logging for. Only a
weak reference to the job is held, to avoid a status_logger
<-> job circular reference.
:param indenter: A status_indenter instance, for tracking the
indentation level.
:param global_filename: An optional filename to initialize the
``self.global_filename`` attribute.
:param subdir_filename: An optional filename to initialize the
``self.subdir_filename`` attribute.
:param record_hook: An optional function to be called before an entry
is logged. The function should expect a single
parameter, a copy of the status_log_entry object.
:param tap_writer: An instance of the class TAPReport for addionally
writing TAP files'

def __init__(self, job, indenter, global_filename='status', subdir_filename='status', record_hook=None, tap_writer=None):

    self._jobref = weakref.ref(job)
    self._indenter = indenter
    self.global_filename = global_filename
    self.subdir_filename = subdir_filename
    self._record_hook = record_hook
    if (tap_writer is None):
        self._tap_writer = TAPReport(None)
    else:
        self._tap_writer = tap_writer
