Подтвердить что ты не робот

Вход в Django и gunicorn

Я запускаю приложение django с gunicorn, и я не вижу никаких сообщений журнала, которые я извиняю.

Вот код, который записывает журналы:

logger = logging.getLogger(__name__)

def home_page(request):
    logger.warning('in home page')

(обратите внимание: этот код определенно работает, поскольку это представление, которое ведет к домашней странице)

Это моя конфигурация журналов из settings.py:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'stream': sys.stdout,
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
        },
    },
    'root': {'level': 'INFO'},
}

Я запускаю gunicorn в качестве демона со следующими аргументами:

--access-logfile ../access.log --error-logfile --log-level debug ../error.log

Оба access.log и error.log создаются и заполняются сообщениями об увольнении, но я не вижу сообщений, которые пишу.

Спасибо

4b9b3361

Ответ 1

Я решил свою проблему. Предоставляя детали, чтобы помочь кому-то с аналогичной проблемой.

Решено не смешиваться с журналами gunicorn и django и создавать отдельный файл журнала для django.

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
        },
        'logfile': {
            'level':'DEBUG',
            'class':'logging.FileHandler',
            'filename': BASE_DIR + "/../logfile",
        },
    },
    'root': {
        'level': 'INFO',
        'handlers': ['console', 'logfile']
    },
}

В этой конфигурации каждое сообщение, написанное с серьезностью >= INFO, будет записано в файл "logfile", расположенный за пределами исходного каталога.