2017-02-08 8 views
2

У меня есть такая конфигурация каротажа настройки:Как настроить ведение журнала django для производства под сервером gunicorn?

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'filters': { 
     'require_debug_false': { 
      '()': 'django.utils.log.RequireDebugFalse' 
     } 
    }, 
    'formatters': { 
     'verbose': { 
      'format': '%(asctime)s %(levelname)s [%(name)s:%(lineno)s] %(module)s %(process)d %(thread)d %(message)s' 
     } 
    }, 
    'handlers': { 
     'console': { 
      'level': 'INFO', 
      'class': 'logging.StreamHandler', 
      'stream': sys.stdout, 
      'formatter': 'verbose' 
     } 
    }, 
    'loggers': { 
     'gunicorn.errors': { 
      'level': 'INFO', 
      'handlers': ['console'], 
      'propagate': True, 
     }, 
    } 
} 

кажется, не имеет никакого эффекта. Когда флаг DEBUG установлен в True, тогда я вижу некоторые ошибки в консоли. Когда он установлен на False, я не могу. Итак, как регистрировать ошибки на консоли, несмотря на то, что флаг DEBUG установлен так или иначе?

+0

какой версия django вы используете? – HassenPy

+0

Django Version is 1.10 –

ответ

2

В Джанго 1.9default logging configuration has been changed:

Изменения протоколирования по умолчанию configuration¶

Для того, чтобы упростить написание пользовательских конфигураций регистрации, конфигурация Джанго регистрации по умолчанию больше не определяет «django.request» и Регистраторы 'django.security'. Вместо этого он определяет единственный регистратор «django» , отфильтрованный на уровне INFO, с двумя обработчиками:

«console»: отфильтрован на уровне INFO и активен только в том случае, если DEBUG = True. 'mail_admins': отфильтрован на уровне ERROR и только активен, если DEBUG = False. Если вы не переопределяете регистрацию по умолчанию в Django, вы, например, , должны увидеть минимальные изменения в поведении, но вы можете увидеть, например, некоторые записи на консоль-серверы.

Если вы переопределяете регистрацию по умолчанию Django, вы должны проверить на , как ваша конфигурация сливается с новыми значениями по умолчанию.

Так что вам нужно сделать, это просто переопределить конфигурации по умолчанию, добавьте это к вашему loggers:

'django':{ 
    'level': 'INFO', 
    'handlers': ['console'], 
    'propagate': True, 
} 

Logging утешать обыкновение зависеть от DEBUG Теперь.

Надеюсь, это поможет!

+1

Да, это помогло. Благодаря! –

+0

также я думаю, что вы можете удалить 'gunicorn.error' и' disable_existing_loggers', если у вас нет дополнительной конфигурации, которая им нужна – HassenPy

+0

Я фактически заменил gunicorn.error содержимым, которое вы предоставили, потому что ничего не делал. –