def move_files_to_trash(directory, exclude_files=None, file_extension=None):
    """
    Move files in the specified directory to trash, optionally excluding some files and filtering by extension.
    
    :param directory: The directory from which to move files to trash.
    :param exclude_files: A list of filenames to exclude from moving to trash.
    :param file_extension: If provided, only files with this extension will be moved to trash.
    """
    if exclude_files is None:
        exclude_files = []

    if not os.path.exists(directory):
        logging.error(f"Directory not found: {directory}")
        return

    for filename in os.listdir(directory):
        if filename not in exclude_files:
            if file_extension is None or filename.lower().endswith(file_extension.lower()):
                file_path = os.path.join(directory, filename)
                send2trash(file_path)
                logging.info(f"Moved to trash: {file_path}")

    Move files in the specified directory to trash, optionally excluding some files and filtering by extension.
    
    :param directory: The directory from which to move files to trash.
    :param exclude_files: A list of filenames to exclude from moving to trash.
    :param file_extension: If provided, only files with this extension will be moved to trash.
    
reboot.py