code: def outputToFiles(stdout=None, stderr=None):
      
      global _stdout, _stderr, _old_hup_handler
      _stdout, _stderr = stdout, stderr
      reopenOutputFiles()
  
      def sighup(signum, frame):
          info('log', "Received SIGHUP, reopening logs")
          reopenOutputFiles()
          if _old_hup_handler:
              info('log', "Calling old SIGHUP hander")
              _old_hup_handler(signum, frame)
  
      try:
          import signal
      except ImportError:
          debug('log', 'POSIX signals not supported, unable to install'
                ' SIGHUP handler')
      else:
          debug('log', 'installing SIGHUP handler')
          handler = signal.signal(signal.SIGHUP, sighup)
          if handler == signal.SIG_DFL or handler == signal.SIG_IGN:
              _old_hup_handler = None
          else:
              _old_hup_handler = handler
docs: Redirect stdout and stderr to named files.
  
      Records the file names so that a future call to reopenOutputFiles()
      can open the same files. Installs a SIGHUP handler that will reopen
      the output files.
  
      Note that stderr is opened unbuffered, so if it shares a file with
      stdout then interleaved output may not appear in the order that you
      expect.