[英]Django logging during migration
我在 Django 中設置了許多復雜的數據遷移,並想設置日志記錄以查看它們如何完成並捕獲錯誤。 我可以用常規的 python 日志來做到這一點,但 Django 有這個半內置的,我希望 Django 日志可以與遷移一起工作。 但是,以下設置似乎不起作用。 我哪里出錯了,或者 Django 日志只在服務和測試期間有效?
在遷移文件中:
import logging
logger = logging.getLogger('rdm')
stuff
logger.warning('message')
more stuff
在 Settings.py 中:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'formatters': {
'simple': {
'format': '[%(asctime)s] %(levelname)s %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
},
'handlers': {
'rdm_logfile': {
'level': 'DEBUG', # should capture everything (warning, info, etc.)
'filters': ['require_debug_false','require_debug_true'],
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(BASE_DIR,'django_rdm.log'),
'maxBytes': 1024*1024*100, # 100MB
'backupCount': 5,
'formatter': 'simple'
},
},
'loggers': {
'rdm': {
'handlers': ['rdm_logfile'],
},
}
}
我有同樣的問題。 不知何故,我不得不重新配置基本記錄器“Django”:
from django.conf import settings
import logging
logger = logging.getLogger(__name__)
def your_migration(apps, schema_editor):
logger.setLevel(logging.INFO)
settings.LOGGING['loggers']['django'] = {
'level': 'INFO',
'handlers': ['console']
}
logger.info("Test")
我發現這篇博文很有幫助。
tl;dr 是您可以配置一個根記錄器來捕獲所有未另行指定的內容。 這(顯然)適用於通過manage.py
運行的所有代碼,包括遷移等。
根記錄器的名稱為空,即:
'loggers': {
'': {
'handlers': ['rdm_logfile'],
},
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.