2012-02-21 2 views
2
LOGGING = { 
'version': 1, 
'disable_existing_loggers': True, 
'formatters': { 
    'verbose': { 
     'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' 
    }, 
    'simple': { 
     'format': '%(levelname)s %(message)s' 
    } 
}, 
'handlers': { 
    'console': { 
     'level':'DEBUG', 
     'class':'logging.StreamHandler', 
     'strm': sys.stdout, 
     'formatter':'simple' 
    }, 
}, 
'loggers': { 
    'django': { 
     'handlers':['console'], 
     'propagate': True, 
     'level':'INFO', 
    }, 
    #'django.request': { 
    # 'handlers': ['console'], 
    # 'level': 'ERROR', 
    # 'propagate': True, 
    #}, 
}, 
} 

Пробовал оба регистратора, активный и один закомментировал (и многие другие). БегПочему эта конфигурация регистрации не печатает на stdout?

python manage.py runserver 0.0.0.0:8080 

И еще не Strack след на 500 ошибки печататься мою консоль, просто:

[21/Feb/2012 04:21:10] "POST /some/path/function/ HTTP/1.1" 500 105627 

Что я делаю неправильно?

ответ

3

Вы должны указать filters:

'loggers': { 
    'django': { 
     'handlers':['console'], 
     'filters': [],    # <-- this line 
     'propagate': True, 
     'level':'INFO', 
    }, 
}, 

Я не знаю, почему.

+0

Я просто наткнулся на это сам. По какой-то причине AFAIK, поле фильтров является единственным, которое каким-то образом автоматически устанавливается django на ['require_debug_false'], если они не указаны, по крайней мере, при использовании обработчика mail_admins. Я обнаружил это путем проб и ошибок и большого количества сбоев в работе. Я не уверен, является ли это предполагаемым поведением или ошибкой (Django 1.4.x) –

+0

А, интересные результаты @ TomášPlešek –

2

уровень Logger имеет более высокий приоритет уровня обработчика, logging.DEBUG имеет значение 10, и logging.INFO имеет значение 20.

'handlers': { 
    'console': { 
     'level':'DEBUG', 
    }, 
} 

'loggers': { 
     'level':'INFO', 
    } 

Следовательно, ваш протоколирование всегда должен быть установлен на уровне INFO сог приоритета регистратора, и выход DEBUG не будет использоваться.

Это то, что я считаю проблемой.

+1

Конечно, если я установил уровень регистратора на DEBUG, я могу получить выход DEBUG. Мне не нужен вывод отладки. Я хочу INFO и выше, но действительно то, что я хочу, это ошибка. Тревоги уровня ERROR вообще отсутствуют. – mkocubinski

+0

logging.ERROR существует со значением 40, проверьте его в модуле регистрации. try, import logging logging.ERROR – avasal

Смежные вопросы