2016-04-12 7 views
7

Это моя настройка модуль:Почему Django каротаж не работает

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'handlers': { 
    'file': { 
     'level': 'DEBUG', 
     'class': 'logging.FileHandler', 
     'filename': '/django-python/django/testapp/testapp.log', 
    }, 
    }, 
    'loggers': { 
    'django': { 
     'handlers': ['file'], 
     'level': 'DEBUG', 
     'propagate': True, 
    }, 
    }, 
} 

и это мой код в виде файл:

import logging 
logger = logging.getLogger(__name__) 
logger.info("this is an error message!!") 

Я получаю предыдущие журналы из различных модулей, но Тор выше log "это сообщение об ошибке".

ответ

3

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

'your_app_name': { 
     'handlers': ['file'], 
     'level': 'DEBUG', 
     'propagate': True, 
    }, 

Теперь вы объявили только регистратор для Джанго сообщений по умолчанию (например, системные ошибки)


Обратите внимание, что уровень регистрационных сообщений важен, поэтому, когда вы используете

logger.info("this is an error message!!") 

для распечатки сообщения уровень вашего регистратора должен быть INFO или более строгим

16

Ваша конфигурация регистрации только фиксирует журналы в пределах пространства имен django.

Эта линия:

logger = logging.getLogger(__name__) 

... говорит регистратор использовать имя вашего модуля в качестве пространства имен для этих журналов (docs). Если ваш модуль называется mymodule, то вы можете поймать эти журналы, добавляя что-то вроде этого в конфигурацию протоколирования:

'loggers': { 
    'django' : {...}, 
    'mymodule': { 
     'handlers': ['file'], 
     'level': 'DEBUG', 
     'propagate': True, 
    }, 
}, 
0
import logging 
logger = logging.getLogger(__name__) 

после оных:

logging.basicConfig(
    level = logging.DEBUG, 
    format = '%(name)s %(levelname)s %(message)s', 
) 

или просто добавить settings.py:

импорт каротаж

logging.basicConfig(
    level = logging.DEBUG, 
    format = '%(name)s %(levelname)s %(message)s', 
) 

мы можем изменить формат:

format = '"%(levelname)s:%(name)s:%(message)s" ', 

или

format = '%(name)s %(asctime)s %(levelname)s %(message)s', 

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

  • Нет связанных вопросов^_^