Для вывода логов в файл с использованием logging.FileHandler(), необходимо:
logging.logger = logging.getLogger(__name__)).logger.setLevel(logging.INFO)).FileHandler, указав имя файла (file_handler = logging.FileHandler('my_log.log')).Formatter для определения формата логов (formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')).Formatter для FileHandler (file_handler.setFormatter(formatter)).FileHandler к логгеру (logger.addHandler(file_handler)).logger.info('This is an info message')).
import logging
# Создаем логгер
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
# Создаем обработчик для записи в файл
file_handler = logging.FileHandler('my_log.log')
# Создаем форматтер
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
# Добавляем обработчик к логгеру
logger.addHandler(file_handler)
# Используем логгер
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
  Для вывода логов в файл с помощью logging.FileHandler() в Python, необходимо выполнить следующие шаги:
Импортировать модуль logging:
import loggingСоздать объект logging.FileHandler(): При создании FileHandler указывается путь к файлу, в который будут записываться логи. Дополнительно можно указать режим открытия файла (например, 'w' для перезаписи или 'a' для добавления).
file_handler = logging.FileHandler('my_application.log', mode='a', encoding='utf-8')Здесь:
'my_application.log' - имя файла для записи логов.mode='a' - режим добавления в файл (логи будут добавляться в конец существующего файла).  Использование mode='w' перезапишет файл при каждом запуске.encoding='utf-8' - устанавливает кодировку файла. Важно указывать кодировку, чтобы избежать проблем с записью символов.Создать объект logging.Formatter(): Форматтер определяет, как будет выглядеть каждая запись лога. Он позволяет указать, какие поля будут включены (время, уровень логирования, имя модуля, сообщение и т.д.).
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')Основные параметры форматтера:
%(asctime)s: Время создания записи лога.%(name)s: Имя логгера.%(levelname)s: Уровень логирования (DEBUG, INFO, WARNING, ERROR, CRITICAL).%(message)s: Сообщение лога.Установить форматтер для FileHandler:
file_handler.setFormatter(formatter)Получить или создать объект logging.Logger:  Используйте logging.getLogger(), чтобы получить существующий логгер или создать новый (если он еще не существует).  Рекомендуется использовать имя модуля, чтобы было понятно, откуда идет лог.
logger = logging.getLogger(__name__)Здесь __name__ обычно содержит имя текущего модуля.
Установить уровень логирования для логгера: Уровень логирования определяет, какие сообщения будут обрабатываться. Например, если установить уровень logging.INFO, то сообщения с уровнем DEBUG будут игнорироваться.
logger.setLevel(logging.INFO)Доступные уровни логирования (в порядке возрастания):
logging.DEBUGlogging.INFOlogging.WARNINGlogging.ERRORlogging.CRITICALДобавить FileHandler к логгеру:
logger.addHandler(file_handler)Использовать логгер для записи сообщений:
logger.debug('Сообщение отладки')
logger.info('Информационное сообщение')
logger.warning('Предупреждение')
logger.error('Ошибка')
logger.critical('Критическая ошибка')Полный пример кода:
import logging
# Создаем логгер
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG) # Устанавливаем минимальный уровень логирования
# Создаем обработчик для записи в файл
file_handler = logging.FileHandler('my_application.log', mode='a', encoding='utf-8')
# Создаем форматтер
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# Устанавливаем форматтер для обработчика
file_handler.setFormatter(formatter)
# Добавляем обработчик к логгеру
logger.addHandler(file_handler)
# Пишем логи
logger.debug('Сообщение отладки')
logger.info('Информационное сообщение')
logger.warning('Предупреждение')
logger.error('Ошибка')
logger.critical('Критическая ошибка')
print("Логи записаны в файл my_application.log")
Этот код создаст файл my_application.log и запишет в него сообщения с уровнями INFO и выше (включая WARNING, ERROR и CRITICAL).  Если в logger.setLevel() указать logging.DEBUG, то в файл попадут и сообщения DEBUG.
Важные моменты: