У меня есть проект django (с использованием сельдерея), и я пытаюсь настроить мою конфигурацию архива регистрации.
Я бы хотел, чтобы мои основные запросы к django были в одном файле журнала с журналами длязадачи сельдерея в другом.
Я определил следующее, однако я не получаю журналы для internals.tasks.cortex.Я думаю, что я установил регистратор для внутренних устройств, которые должны перехватывать internals.tasks.cortex из-за распространения?Но это не так.Однако он всегда выводится в корневой логгер!
├── internals
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── celery.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ └── __init__.py
│ ├── models.py
│ ├── tasks
│ │ ├── __init__.py
│ │ ├── cortex.py
│ │ ├── setup.py
│ │ └── submission.py
│ └── views.py
├── logs
├── manage.py
└── xplorioc
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
settings.py
# # Logging configuration
LOGLEVEL = os.environ.get('LOGLEVEL', 'DEBUG').upper()
LOGGING_CONFIG = None
CUSTOM_LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'loggers': {
'': {
'level': LOGLEVEL,
'handlers': ['console', 'root'],
},
'internals': {
'level': LOGLEVEL,
'handlers': ['console', 'internals'],
'propagate': False
}
},
'formatters': {
'basic': {
'format': '%(asctime)s %(name)s / %(levelname)s / %(message)s',
'datefmt': '%Y/%m/%d %H:%M:%S',
}
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'basic',
},
'root': {
'level': LOGLEVEL,
'formatter': 'basic',
'class': 'logging.handlers.RotatingFileHandler',
'maxBytes': 1024 * 1024 * 1,
'backupCount': 0,
'filename': BASE_DIR + '/logs/root.log',
},
'internals': {
'level': LOGLEVEL,
'formatter': 'basic',
'class': 'logging.handlers.RotatingFileHandler',
'maxBytes': 1024 * 1024 * 1,
'backupCount': 0,
'filename': BASE_DIR + '/logs/internals.log',
}
}
}
logging.config.dictConfig(CUSTOM_LOGGING)
cortex.py
from celery.utils.log import get_task_logger
logger = get_task_logger(__name__)
def test():
logger.debug('I only go to the root logger...')
ОБНОВЛЕНИЕ--------
Странно, если я добавлю следующее в cortex.py:
logger = get_task_logger(__name__)
print(logger.name)
print(logger.parent.name)
print(logger.parent.parent.name)
Он напечатает:
internals.tasks.cortex
celery.task
celery
2019/02/07 20:38:11 internals.tasks.cortex / DEBUG / I only go to the root logger...
Итак,вопрос в том, почему путь корня переворачивается от внутренних органов к сельдерею?!