Skip to content

Latest commit

 

History

History
80 lines (63 loc) · 2.38 KB

logger.md

File metadata and controls

80 lines (63 loc) · 2.38 KB

Логирование

Документация логирования

У самого языка Python есть свой собственный встроенный модуль для логирования logging

Пример работы

import logging

logger = logging.getLogger('logger_for_debug')

def some_function():
    if False:
        logger.error('Ошибка ...')

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

Виды логирования:

  • logger.debug()
  • logger.info()
  • logger.warning()
  • logger.error()
  • logger.critical()

Ведение журнала для логирования.

Настроить журнал ведения логирования можно по разному, чаще используют способ через словарь LOGGING.

LOGGING - словарь с параметрами который будет описывать как вести журнал логирования, фильтры и средства форматирования для ведения логов.

Настройки settings.py с параметрами LOGGING для ведения журнала:

import os

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'root': {
        'handlers': ['console'],
        'level': 'WARNING',
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
            'propagate': False,
        },
    },
}

Запись логов в файл

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

import logging

logging.basicConfig(filemode='w',
                    format='%(asctime)s.%(msecs)03d %(levelname)s %(module)s - %(funcName)s: %(message)s',
                    level=logging.INFO,
                    filename='logging.log'
                    )