2013-04-14 14 views
5

我想運行Gunicorn,並且遇到錯誤(粘貼在下面)。目前,它看起來像Gunicorn或它的一個依賴項正在嘗試讀取settings.LOGGING,並且settings.py文件似乎沒有定義settings.LOGGING。如何定義settings.LOGGING,以便gunicorn能夠找到它想要的版本值?

所以我想知道我可以添加什麼類型的文字或其他代碼,以便Gunicorn +依賴項具有他們認爲他們需要的東西。

代碼粘貼:

 
(socialenv)[email protected]:~/directory$ python manage.py run_gunicorn 0.0.0. 
0:8000 
2013-04-14 17:40:13 [26464] [INFO] Starting gunicorn 0.17.2 
2013-04-14 17:40:13 [26464] [INFO] Listening at: http://0.0.0.0:8000 (26464) 
2013-04-14 17:40:13 [26464] [INFO] Using worker: sync 
2013-04-14 17:40:13 [26469] [INFO] Booting worker with pid: 26469 
2013-04-14 17:40:13 [26469] [ERROR] Exception in worker process: 
Traceback (most recent call last): 
    File "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 485, in spawn_worker 
    worker.init_process() 
    File "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 100, in init_process 
    self.wsgi = self.app.wsgi() 
    File "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 103, in wsgi 
    self.callable = self.load() 
    File "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/djangoapp.py", line 133, in load 
    return mod.make_command_wsgi_application(self.admin_media_path) 
    File "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/django_wsgi.py", line 113, in make_command_wsgi_application 
    reload_django_settings() 
    File "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/django_wsgi.py", line 109, in reload_django_settings 
    logging_config_func(settings.LOGGING) 
    File "/usr/lib/python2.7/logging/config.py", line 777, in dictConfig 
    dictConfigClass(config).configure() 
    File "/usr/lib/python2.7/logging/config.py", line 503, in configure 
    raise ValueError("dictionary doesn't specify a version") 
ValueError: dictionary doesn't specify a version 
Traceback (most recent call last): 
    File "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 485, in spawn_worker 
    worker.init_process() 
    File "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 100, in init_process 
    self.wsgi = self.app.wsgi() 
    File "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 103, in wsgi 
    self.callable = self.load() 
    File "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/djangoapp.py", line 133, in load 
    return mod.make_command_wsgi_application(self.admin_media_path) 
    File "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/django_wsgi.py", line 113, in make_command_wsgi_application 
    reload_django_settings() 
    File "/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/django_wsgi.py", line 109, in reload_django_settings 
    logging_config_func(settings.LOGGING) 
    File "/usr/lib/python2.7/logging/config.py", line 777, in dictConfig 
    dictConfigClass(config).configure() 
    File "/usr/lib/python2.7/logging/config.py", line 503, in configure 
    raise ValueError("dictionary doesn't specify a version") 
ValueError: dictionary doesn't specify a version 
2013-04-14 17:40:13 [26469] [INFO] Worker exiting (pid: 26469) 
2013-04-14 17:40:13 [26464] [INFO] Shutting down: Master 
2013-04-14 17:40:13 [26464] [INFO] Reason: Worker failed to boot. 
(socialenv)[email protected]:~/directory$ 

回答

12

我有同樣的錯誤,我加入日誌記錄配置到項目的設置文件固定它,我用從該頁面

https://docs.djangoproject.com/en/dev/topics/logging/

這裏的例子是代碼從我的設置文件

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': True, 
    'formatters': { 
     'verbose': { 
      'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' 
     }, 
     'simple': { 
      'format': '%(levelname)s %(message)s' 
     }, 
    }, 
    'handlers': { 
     'null': { 
      'level': 'DEBUG', 
      'class': 'logging.NullHandler', 
     }, 
     'console':{ 
      'level': 'DEBUG', 
      'class': 'logging.StreamHandler', 
      'formatter': 'simple' 
     }, 
     'mail_admins': { 
      'level': 'ERROR', 
      'class': 'django.utils.log.AdminEmailHandler', 
      'filters': [], 
     } 
    }, 
    'loggers': { 
     'django': { 
      'handlers': ['null'], 
      'propagate': True, 
      'level': 'INFO', 
     }, 
     'django.request': { 
      'handlers': ['mail_admins'], 
      'level': 'ERROR', 
      'propagate': False, 
     }, 
    } 
} 
+0

謝謝,這有幫助。 – snnlankrdsm

1

錯誤消息意味着通過了日誌記錄配置的配置字典缺少架構版本。你需要顯示你的字典是確定的,但這肯定是你所得到的錯誤所指的。有關更多信息,請參見the docs

9

最簡單的方法是在settings.py補充:

LOGGING = { 
    'version': 1, 
} 
相關問題