2013-04-14 10 views
5

Próbuję uruchomić Gunicorn i pojawia się błąd (wklejony poniżej). Obecnie wygląda na to, że Gunicorn lub jedna z jego zależności próbuje odczytać ustawienia.LOGGING, a plik settings.py nie wydaje się definiować ustawień.LOGGING.Jak zdefiniować settings.LOGGING, aby gunicorn znalazł żądaną wersję?

Chciałbym więc wiedzieć, jaki rodzaj literału lub innego kodu mogę dodać, aby zależności Gunicorn + miały to, czego potrzebują.

pasta Kod:

 
(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$ 

Odpowiedz

12

Miałem ten sam błąd i naprawić go, dodając konfigurację logowania do pliku ustawień projektu, użyłem przykładu z tej strony

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

oto kod z pliku moje ustawienia

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

dzięki, to pomaga. – snnlankrdsm

1

Komunikat o błędzie oznacza, że ​​słownik konfiguracja przekazywane do konfiguracji rejestrowania brakuje wersję schematu. Będziesz musiał pokazać słownik, ale z pewnością to właśnie odnosi się do błędu, który otrzymujesz. Aby uzyskać więcej informacji, patrz the docs.

9

Najprostszym sposobem jest dodanie w settings.py:

LOGGING = { 
    'version': 1, 
} 
Powiązane problemy