2017-02-15 10 views
2

私はDjangoプロジェクトをuWSGIで設定しようとしています。私はsettings.pyでログハンドラを定義しており、開発サーバを使用したときにログを正常に書き出します。しかし、uWSGIを使用して本番サーバーに移動すると、ログファイルが作成されても空になります。Django uWSGIはログファイルを作成しますが、ファイルは空です(開発サーバで動作します)

settings.pyはこれを含んでいます。あなたが提供できるすべての助けを事前に

import logging 
logger = logging.getLogger('django_auth_ldap') 
logger.addHandler(logging.StreamHandler()) 
logger.setLevel(logging.DEBUG) 

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'handlers': { 
    'console': { 
     'class': 'logging.StreamHandler', 
     }, 
     'file': { 
      'level': 'DEBUG', 
      'class': 'logging.FileHandler', 
      'filename': '/tmp/zdebug.log', 
      }, 
     }, 
     'loggers': { 
      'django': { 
       'handlers': ['console','file'], 
       'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'), 
      }, 
      'devices': { 
       'handlers': ['console','file'], 
       'level': 'INFO' 
      }, 
      'stack_configs': { 
       'handlers': ['console','file'], 
       'level': 'INFO' 
      }, 
      'django_auth_ldap': { 
       'handlers': ['console','file'], 
       'level': 'INFO' 
       },  
      }, 
    } 

感謝を。

答えて

2

これは設定が間違っているためです。 loggershandlersに入れました。これはLOGGING構造に違反しています。それはすべき辞書のインデントの同じレベルでhandlersloggersfiltersformattersを持っている:

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'handlers': { 
     'console': { 
      'class': 'logging.StreamHandler', 
     }, 
     'file': { 
      'level': 'DEBUG', 
      'class': 'logging.FileHandler', 
      'filename': '/tmp/zdebug.log', 
     }, 
    }, 
    'loggers': { 
     'django': { 
      'handlers': ['console','file'], 
      'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'), 
     }, 
     'devices': { 
      'handlers': ['console','file'], 
      'level': 'INFO' 
     }, 
     'stack_configs': { 
      'handlers': ['console','file'], 
      'level': 'INFO' 
     }, 
     'django_auth_ldap': { 
      'handlers': ['console','file'], 
      'level': 'INFO' 
     }, 
    }, 
} 

あなたが見る空のファイルは、Djangoのブート時に作成され、それがデフォルトのロガーを使用しているため、Djangoは開発サーバー上のログに記録します不正な設定を無視します。

関連する問題