Как настроить протоколирование Django в файл для приложения - PullRequest
0 голосов
/ 02 марта 2019

Я борюсь с конфигурацией логирования Django.У меня есть одно приложение под названием "API", и я хочу сохранить в файл все журналы из этого приложения.Когда я настраиваю логгер на django, все работает нормально, но когда я меняю его на app_name, это не так.Вот моя конфигурация:

Структура файла:

email_api
    api
        tasks.py
    email_api
        celery.py
        settings
    logs
        email.log

Моя конфигурация регистрации:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': 'logs/email.log',
        },
    },
    'loggers': {
        'api': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

файл tasks.py, в который я записываюсь:

import logging

logger = logging.getLogger(__name__)

@app.task(bind=True, default_retry_delay=3, max_retries=3,)
def send_email(self, data, email_id):
    message = create_message(data, email)
    try:
        logger.debug("Log Message Here")
        message.send()   

1 Ответ

0 голосов
/ 02 марта 2019

Ключи в LOGGING['loggers'][...] dict являются именами регистраторов.Вы настроили протоколирование с api в качестве имени регистратора.

Для записи в этот регистратор вы должны запросить его под этим именем:

logger = logging.getLogger('api')

...

logger.debug("Log Message Here")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...