2
manage.py
ファイル管理コマンドが失敗するたびに管理者に電子メールを送信します。Django:manage.pyでログインすると、誤った例外とトレースバックが発生する
実際には、実際のエラーがImportError: No module named django_inlinecss
た場合、次のコード
manage.py
import logging
logger = logging.getLogger('management_commands')
try:
execute_from_command_line(sys.argv)
except Exception as e:
logger.error('Admin Command Error: %s', ' '.join(sys.argv),
exc_info=sys.exc_info())
raise e
は
"The translation infrastructure cannot be initialized before the "
django.core.exceptions.AppRegistryNotReady: The translation infrastructure cannot be initialized before the apps registry is ready. Check that you don't make non-lazy gettext calls at import time.`
を上げています。ロガーの
私の設定が
LOGGING = {
...
'handlers': {
...
'mail_admins': {
'class': 'django.utils.log.AdminEmailHandler',
'level': 'ERROR',
'include_html': True
}
},
'loggers': {
...
'management_commands': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True
}
}
}
され、トレースバックの最初の部分は、これは私が関連ログ記録問題がある可能性があります考えてしまった方法です
File "/usr/lib/python2.7/logging/__init__.py", line 1279, in _log
self.handle(record)
File "/usr/lib/python2.7/logging/__init__.py", line 1289, in handle
self.callHandlers(record)
File "/usr/lib/python2.7/logging/__init__.py", line 1329, in callHandlers
hdlr.handle(record)
File "/usr/lib/python2.7/logging/__init__.py", line 757, in handle
self.emit(record)
File "/usr/local/lib/python2.7/dist-packages/django/utils/log.py", line 128, in emit
html_message = reporter.get_traceback_html() if self.include_html else None
File "/usr/local/lib/python2.7/dist-packages/django/views/debug.py", line 384, in get_traceback_html
return t.render(c)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 210, in render
return self._render(context)
です。
なぜPythonロギングライブラリがDjangoを"The translation infrastructure cannot be initialized before the "
に昇格させるのか?
ありがとう:ここ
最も簡単な解決策は、(:完全にテストされていない警告)すなわち、「include_html」フラグをせずに別のハンドラを設定し、あなたのロガーのための代わりにこれを使用することです。実際、問題は 'include_html:True'のためでした。それは正しくなく動作します。 – bogtan