Инструменты пользователя

Инструменты сайта


develop:pyton:logger

Это старая версия документа!


Логирование

Общее

Применение

Дока
Дока

Классы логгера наследуются, в блоке «root» можно определить базовые параметры для всех создаваемых потом подклассов

import logging.config
 
LOGGING_CONFIG = {
    "version": 1,
    "disable_existing_loggers": False,
    "formatters": { },
    "handlers": { },
    "loggers": { },
    "root": { },
}
 
logging.config.dictConfig(LOGGING_CONFIG)
 
 

Примеры

:!: Еще примеры
import logging
 
logging.basicConfig(
    level=logging.DEBUG,
    filename = "mylog.log",
    format = "%(asctime)s - %(module)s - %(levelname)s - %(funcName)s: %(lineno)d - %(message)s",
    datefmt='%H:%M:%S',
    )
 
logging.info('Hello')
import logging
 
logging.basicConfig(level=logging.INFO, filename="py_log.log",filemode="w",
                    format="%(asctime)s %(levelname)s %(message)s")
 
x_vals = [2,3,6,4,10]
y_vals = [5,7,12,0,1]
 
for x_val,y_val in zip(x_vals,y_vals):
    x,y = x_val,y_val
    logging.info(f"The values of x and y are {x} and {y}.")
    try:
        x/y
        logging.info(f"x/y successful with result: {x/y}.")
    except ZeroDivisionError as err:
        #logging.exception("ZeroDivisionError")
        logging.error("ZeroDivisionError",exc_info=True)
import logging
from test_div import test_division 
 
# получение пользовательского логгера и установка уровня логирования
py_logger = logging.getLogger(__name__)
py_logger.setLevel(logging.INFO)
 
# настройка обработчика и форматировщика в соответствии с нашими нуждами
py_handler = logging.FileHandler(f"{__name__}.log", mode='w')
py_formatter = logging.Formatter("%(name)s %(asctime)s %(levelname)s %(message)s")
 
# добавление форматировщика к обработчику 
py_handler.setFormatter(py_formatter)
# добавление обработчика к логгеру
py_logger.addHandler(py_handler)
 
py_logger.info(f"Testing the custom logger for module {__name__}...")
 
x_vals = [2,3,6,4,10]
y_vals = [5,7,12,0,1]
 
for x_val,y_val in zip(x_vals,y_vals):
    x,y = x_val, y_val
    # вызов test_division
    test_division(x,y)
    py_logger.info(f"Call test_division with args {x} and {y}")
develop/pyton/logger.1670061969.txt.gz · Последнее изменение: 2022/12/03 10:06 — admin