Что найти?

Уровень отладки с помощью Logging DEBUG Lines в Python

/
/

Чтобы записать строку отладки с помощью Logging в Python, проверьте, имеет ли регистратор хотя бы уровень ведения журнала DEBUG.

  • Используйте метод logging.debug() с сообщением, переданным в качестве аргумента, чтобы вывести строку отладки на консоль или в файл.

Если уровень ведения журнала установлен на DEBUG, то регистратор будет печатать или записывать строки в консоль или файл журнала.

Если вы установите уровень ведения журнала INFO, WARNING, ERROR или CRITICAL, то строки DEBUG не будут записаны в файл журнала.

Порядок уровней ведения журнала:

DEBUG < INFO < WARNING < ERROR < CRITICAL

Пример 1

В этом примере мы импортируем модуль ведения журнала, установим уровень средства ведения журнала на DEBUG, а затем будем использовать метод debug() для регистрации строки DEBUG.

import logging

#create a logger
logger = logging.getLogger('mylogger')
#set logging level
logger.setLevel(logging.DEBUG)

handler = logging.FileHandler('mylog.log')
# create a logging format
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)

#write a debug message
logger.debug('This is a DEBUG message')

После запуска указанной выше программы в файле mylog.log вы могли увидеть следующее содержимое.

2019-02-25 22:31:40,353 - mylogger - DEBUG - This is an DEBUG message

Пример 2

Вы можете установить фильтр для обработчика журнала, чтобы записывать в файл только строки DEBUG.

import logging

class MyFilter(object):
    def __init__(self, level):
        self.__level = level

    def filter(self, logRecord):
        return logRecord.levelno <= self.__level

#create a logger
logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)
handler = logging.FileHandler('mylog.log')
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
#set filter to log only DEBUG lines
handler.addFilter(MyFilter(logging.DEBUG))
logger.addHandler(handler)

#write a debug line to log file
logger.debug('This is a DEBUG message')
logger.info('This is a INFO message')
logger.warning('This is a WARNING message')
logger.error('This is an ERROR message')
logger.critical('This is a CRITICAL message')

Консольный вывод:

2019-02-26 22:25:05,280 - mylogger - DEBUG - This is a DEBUG message

Было зарегистрировано только сообщение DEBUG, но никаких других сообщений типа INFO, WARNING, ERROR и CRITICAL.

Заключение

В этом руководстве на примерах Python мы узнали, как использовать уровень DEBUG библиотеки Logging в Python.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

This div height required for enabling the sticky sidebar