52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
import logging
|
|
import logging.handlers
|
|
import sys
|
|
|
|
|
|
sys.stdin.reconfigure(encoding='utf-8')
|
|
sys.stdout.reconfigure(encoding='utf-8')
|
|
|
|
|
|
def setup_logging(name):
|
|
""" Создание логгера """
|
|
logger = logging.getLogger()
|
|
logger.setLevel(logging.DEBUG)
|
|
|
|
""" Создание обработчика для записи логов в файл """
|
|
|
|
file_handler = logging.FileHandler(
|
|
filename=f"{name}.log",
|
|
mode='w',
|
|
encoding='utf-8'
|
|
)
|
|
file_handler.setLevel(logging.DEBUG)
|
|
|
|
""" Создание обработчика для вывода логов на консоль """
|
|
|
|
console_handler = logging.StreamHandler()
|
|
console_handler.setLevel(logging.INFO)
|
|
|
|
""" Форматтер для вывода в файл """
|
|
|
|
file_formatter = logging.Formatter(
|
|
'%(asctime)s [%(levelname)s] [%(name)s] - %(message)s'
|
|
)
|
|
|
|
""" Форматтер для вывода на консоль """
|
|
|
|
console_formatter = logging.Formatter(
|
|
'%(asctime)s [%(levelname)s] [%(name)s] - %(message)s'
|
|
)
|
|
|
|
""" Добавление форматтеров в обработчики """
|
|
|
|
file_handler.setFormatter(file_formatter)
|
|
console_handler.setFormatter(console_formatter)
|
|
|
|
""" Добавление обработчиков в логгер """
|
|
|
|
logger.addHandler(file_handler)
|
|
logger.addHandler(console_handler)
|
|
|
|
return logger
|