code: def __finish_initializing(self):
          
  
          if self.args.debug or self.args.trace:
              # Set the console (StreamHandler) to allow debug statements.
  
              if self.args.debug:
                  self.console.setLevel(logging.DEBUG)
  
              self.console.setFormatter(logging.Formatter('[%(levelname)s] %(asctime)s %(name)s - %(message)s'))
  
              # Set the global level to debug.
              if self.args.debug:
                  self.log.setLevel(logging.DEBUG)
  
          if self.args.log or self.log_file:
  
              # Allow the user to override the default log file handler.
              try:
                  self.log_file_handler = sys.modules['__main__'].log_file_handler(self.args.log or self.log_file)
              except Exception:
                  self.log_file_handler = logging.FileHandler(self.args.log or self.log_file)
  
              self.log_file_handler.setFormatter(logging.Formatter('[%(levelname)s] %(asctime)s %(name)s - %(message)s'))
              self.log_file_handler.setLevel(logging.DEBUG)
  
              self.log.addHandler(self.log_file_handler)
  
          # Allow cli.log, args & self to be accessed from __main__
          if not hasattr(sys.modules['__main__'], 'log'):
              sys.modules['__main__'].log = self.log
  
          if not hasattr(sys.modules['__main__'], 'cli'):
              sys.modules['__main__'].cli = self
  
          if not hasattr(sys.modules['__main__'], 'args'):
              sys.modules['__main__'].args = self.args
docs: Handle any initialization after arguments & config has been parsed.