code: def create_logger(self, args={}):
          
          # Set up logging
          logger = logging.getLogger("SmartFileSorter")
          logger.level = logging.INFO
  
          if '--debug' in args and args['--debug'] is True:
              logger.setLevel(logging.DEBUG)
  
          file_log_formatter = logging.Formatter('%(asctime)s %(name)s %(levelname)s %(message)s',
                                                 '%Y-%m-%d %H:%M:%S')
          console_log_formatter = logging.Formatter('%(message)s')
  
          # Log to stdout
          stdout_stream = logging.StreamHandler(stream=sys.stdout)
          stdout_stream.setFormatter(console_log_formatter)
          logger.addHandler(stdout_stream)
  
          # Log to file if the option is chosen
          if '--log' in args and args['--log'] is not None:
              logfile = open(args['--log'], 'w')
              logfile_stream = logging.StreamHandler(stream=logfile)
              logfile_stream.setFormatter(file_log_formatter)
              logger.addHandler(logfile_stream)
  
          if '--dry-run' in args and args['--dry-run'] is True:
              logger.info('Running with --dry-run parameter. Actions will not be performed.')
          self.logger = logger
docs: Create and configure the program's logger object.
  
          Log levels:
          DEBUG - Log everything. Hidden unless --debug is used.
          INFO - information only
          ERROR - Critical error
          :param args: Object containing program's parsed command line arguments
          :return: None