Django logger отключен при использовании Gunicorn - PullRequest
2 голосов
/ 11 марта 2019

Я пытаюсь использовать Django logging with gunicorn.Я могу использовать его с сервером разработки Django, но когда я использую с gunicorn, логи не записываются в файл или консоль.

Вот моя конфигурация регистрации (урезанная):

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '[%(asctime)s] %(levelname)s [%(filename)s:%(lineno)s] %(message)s'
        },
        'simple': {
            'format': '%(message)s'
        }
    },
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        }, 
        'docs_file_handler': {
            'class': 'logging.FileHandler',
            'filename': os.path.join(LOGS_DIR, 'docs.log'),
            'level': 'DEBUG',
            'formatter': 'simple'
        }
    },
    'loggers': {
        'docs.views': {
            'handlers': ['docs_file_handler', 'console'],
            'propagate': True,
            'level': 'DEBUG',
        },

    },
}

Когда я печатаю файл 'logger.disabled', он получается True.

Чтобы получить регистратор:

logger = logging.getLogger(__name__)
print(logger.handlers)  # Returns [<FileHandler /var/efs/docs.log (DEBUG)>]
print(logger.disabled)  # Returns True

# When I manually set, logger starts working
logger.disabled = False

Команда Gunicorn:

gunicorn my_project.wsgi --enable-stdio-inheritance --log-level "info" --error-logfile "/var/efs/gunicorn.error.log" --access-logfile "/var/efs/gunicorn.access.log" --reload

Яневозможно заставить журналы работать с Gunicorn.

1 Ответ

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

Я нашел решение, в одном из своих модулей я явно указывал регистратор с «disable_existing_loggers» как True.

...