2016-07-02 11 views
1

私は見えるところを見ているDjango、セロリを使用するとログの一部が記録されない

logger.exception("hello")が実行されています。

しかし、sentryやファイルには何も記録されません。

私は

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': True, 
    'filters': { 
     'require_debug_false': { 
      '()': 'django.utils.log.RequireDebugFalse' 
     } 
    }, 
    'formatters': { 
     'verbose': { 
      'format': '[%(asctime)s] %(levelname)s (%(module)s:%(funcName)s:%(lineno)d) %(message)s' 
     }, 
     'simple': { 
      'format': '%(levelname)s %(message)s' 
     }, 
    }, 
    'handlers': { 
     'null': { 
      'level': 'DEBUG', 
      'class': 'logging.NullHandler', 
     }, 
     # Send all messages to console 
     'console': { 
      'level': 'DEBUG', 
      'class': 'logging.StreamHandler', 
      'formatter': 'verbose' 
     }, 
     # Warning messages are sent to admin emails 
     'mail_admins': { 
      'level': 'WARNING', 
      'filters': ['require_debug_false'], 
      'class': 'django.utils.log.AdminEmailHandler', 
     }, 
     # critical errors are logged to sentry 
     'sentry': { 
      'level': 'INFO', 
      'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler', 
     }, 
    }, 
    'loggers': { 
     # This is the "catch all" logger 
     '': { 
      'handlers': ['console', 'sentry'], 
      'level': 'DEBUG', 
      'propagate': False, 
     }, 

     'django.db.backends': { 
      'handlers': ['null'], # Quiet by default! 
      'propagate': False, 
      'level': 'DEBUG', 
     }, 
    } 
    } 

以下のようにログに関する設定を持っていると私は

import logging 
logger = logging.getLogger(__name__) 

logger.exception("error") 
logger.info({"error": "foo"}) 

は、なぜ私は、ログの一部を失っていてものをログ?
は(私は、デバッガでコードを追ってきたし、ログが実行されましたが、歩哨/ログファイルに何も)セロリ、hijacks the root ('') logger by defaultで...

+0

'DEBUG'設定の値は何ですか? –

+0

私はFalseとTrueの両方を試しましたが、同じ結果です。 – eugene

+0

このプロジェクトでセロリを使用していますか? – solarissmoke

答えて

1

問題が発生していると、以前に構成されたルートロガーを破棄します。つまり、設定が無視されます。この設定を追加すること

試してみてください。

CELERYD_HIJACK_ROOT_LOGGER = False 
+0

ああ!それが動作することを願って! btw、それは以前に無視された(?)セロリログがすべて記録されているようです。ルートロガーを保持してセロリログを無効にすることはできますか? – eugene

+0

あなたは、私が推測するワーカーに対してより高い '--loglevel'を設定することができます。 – solarissmoke

関連する問題