Tôi đã thiết lập Celery trong một dự án Django mà tôi đang làm việc. Tôi muốn tách khai thác gỗ cho các công việc cần tây so với phần còn lại của nhật ký cần tây (cần tây, cần tây, vv).Django Celery Task Logging
Dựa trên tài liệu Celery (http://docs.celeryproject.org/en/latest/userguide/tasks.html#logging) có vẻ như tôi chỉ có thể xác định trình ghi nhật ký Django cho 'celery.task' nên thực hiện việc này. Tuy nhiên, khi tôi làm điều này, không có gì xuất hiện trong nhật ký. Tất cả mọi thứ hiện lên nếu tôi tạo một logger 'cần tây' chung, ngụ ý rằng điều này có thể là một cái gì đó để làm với tên của logger.
Tôi thiếu gì ở đây? Có cách nào để thực hiện công việc này, hay tất cả các nhật ký cần tây đi cùng nhau?
Đối với những gì đáng giá, tôi đã đặt CELERYD_HIJACK_ROOT_LOGGER = False.
thiết lập đăng nhập của tôi trong settings.py:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'formatters': {
'standard': {
'format': '%(asctime)s %(levelname)s [%(name)s: %(lineno)s] -- %(message)s',
'datefmt': '%m-%d-%Y %H:%M:%S'
},
},
'handlers': {
'logfile': {
'level': 'INFO',
'filters': None,
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/vagrant/logs/logfile.log',
'maxBytes': 1024*1024*5,
'backupCount': 3,
'formatter': 'standard'
},
'debug_logfile': {
'level': 'DEBUG',
'filters': None,
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/vagrant/logs/debug_logfile.log',
'maxBytes': 1024*1024*5,
'backupCount': 5,
'formatter': 'standard'
},
'default_logger': {
'level': 'WARNING',
'filters': None,
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/vagrant/logs/default.log',
'maxBytes': 1024*1024*5,
'backupCount': 2,
'formatter': 'standard'
},
'celery_logger': {
'level': 'DEBUG',
'filters': None,
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/vagrant/logs/celery.log',
'maxBytes': 1024*1024*5,
'backupCount': 2,
'formatter': 'standard'
},
'celery_task_logger': {
'level': 'DEBUG',
'filters': None,
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/vagrant/logs/celery_tasks.log',
'maxBytes': 1024*1024*5,
'backupCount': 2,
'formatter': 'standard'
},
},
'loggers': {
'': {
'handlers': ['default_logger'],
'level': 'WARNING',
'propagate': True,
},
'django': {
'handlers': ['logfile'],
'level': 'INFO',
'propagate': True,
},
'feedmanager': {
'handlers': ['logfile', 'debug_logfile'],
'level': 'DEBUG',
'propagate': True,
},
'recipemanager': {
'handlers': ['logfile', 'debug_logfile'],
'level': 'DEBUG',
'propagate': True,
},
'menumanager': {
'handlers': ['logfile', 'debug_logfile'],
'level': 'DEBUG',
'propagate': True,
},
'celery.task': {
'handlers': ['celery_task_logger'],
'level': 'DEBUG',
'propagate': True,
},
'celery': {
'handlers': ['celery_logger'],
'level': 'DEBUG',
'propagate': True,
},
}
}
celery.tasks hoặc celery.task – toad013
Cảm ơn - không chắc là tôi làm theo dù. Tôi có một logger cho celery.task, và đã thử celery.tasks để tác dụng tương tự. – aravenel