Vova316
@Vova316

Логирование в разные файлы в Python3?

Здравствуйте.
Подскажите как реализовать логгирование в разные файлы от разных логгеров ("левый" и "правый" логгер).
Сейчас такой код:
spoiler
log_left = logging.getLogger()
log_left.setLevel(logging.DEBUG)
FH_left = logging.FileHandler("left_file.log")
basic_format_left = logging.Formatter('%(asctime)s : [%(levelname)s] : %(message)s')
FH_left.setFormatter(basic_format_left)
log_left.addHandler(FH_left)
log_left.debug('Это ДЭБАГ на левой части')
log_left.info('Это ИНФО на левой части')
log_left.warning('Это Варнинг на левой части')
log_left.error('Это Эррор на левой части')
log_left.critical('Это критикал на левой части')

log_right = logging.getLogger()
log_right.setLevel(logging.DEBUG)
FH_right = logging.FileHandler("right_file.log")
basic_format_right = logging.Formatter('%(asctime)s : [%(levelname)s] : %(message)s')
FH_right.setFormatter(basic_format_right)
log_right.addHandler(FH_right)
log_right.debug('Это ДЭБАГ на правой части')
log_right.info('Это ИНФО на правой части')
log_right.warning('Это Варнинг на правой части')
log_right.error('Это Эррор на правой части')
log_right.critical('Это критикал на правой части')


В результате получается два файла. Но один из них дублирует второй:

"Левый" логгер:
spoiler
2021-11-01 08:23:13,579 : [DEBUG] : Это ДЭБАГ на левой части
2021-11-01 08:23:13,580 : [INFO] : Это ИНФО на левой части
2021-11-01 08:23:13,582 : [WARNING] : Это Варнинг на левой части
2021-11-01 08:23:13,583 : [ERROR] : Это Эррор на левой части
2021-11-01 08:23:13,584 : [CRITICAL] : Это критикал на левой части
2021-11-01 08:23:13,587 : [DEBUG] : Это ДЭБАГ на правой части
2021-11-01 08:23:13,590 : [INFO] : Это ИНФО на правой части
2021-11-01 08:23:13,592 : [WARNING] : Это Варнинг на правой части
2021-11-01 08:23:13,594 : [ERROR] : Это Эррор на правой части
2021-11-01 08:23:13,596 : [CRITICAL] : Это критикал на правой части


"Правый" логгер:
spoiler
2021-11-01 08:23:13,587 : [DEBUG] : Это ДЭБАГ на правой части
2021-11-01 08:23:13,590 : [INFO] : Это ИНФО на правой части
2021-11-01 08:23:13,592 : [WARNING] : Это Варнинг на правой части
2021-11-01 08:23:13,594 : [ERROR] : Это Эррор на правой части
2021-11-01 08:23:13,596 : [CRITICAL] : Это критикал на правой части


Как видите, в файле "левого" логгера идет дублирование информации из "правого" логгера.
Как этого избежать и видеть "левые" логи в "левом" файле, а "правые" логи в "правом" файле.
Спасибо.
  • Вопрос задан
  • 985 просмотров
Решения вопроса 2
Добавьте название для логгеров
log_left = logging.getLogger('left')
log_right = logging.getLogger('right')
Если не передавать название, то будет приходить root - логгер, который один
Ответ написан
@rodion4dev
Для этого необходимо более явно указывать название логгера при получении. Например:
log_left = logging.getLogger("left_logger")
log_right = logging.getLogger("right_logger")
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы