9

我正在尝试运行 Gunicorn,但遇到了错误(粘贴在下面)。目前看起来 Gunicorn 或其依赖项之一正在尝试读取 settings.LOGGING,而 settings.py 文件似乎没有定义 settings.LOGGING。

所以我想知道我可以添加什么样的文字或其他代码,以便 Gunicorn + 依赖项拥有他们认为需要的东西。

代码粘贴:

(socialenv)jonathan@li393-189:~/directory$ python manage.py run_gunicorn 0.0.0。
0:8000
2013-04-14 17:40:13 [26464] [INFO] 启动 gunicorn 0.17.2
2013-04-14 17:40:13 [26464] [INFO] 收听:http://0.0.0.0:8000 (26464)
2013-04-14 17:40:13 [26464] [INFO] 使用工作人员:同步
2013-04-14 17:40:13 [26469] [INFO] 使用 pid 引导工作人员:26469
2013-04-14 17:40:13 [26469] [错误] 工作进程中的异常:
回溯(最近一次通话最后):
  文件“/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/arbiter.py”,第 485 行,在 spawn_worker
    worker.init_process()
  文件“/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/workers/base.py”,第 100 行,在 init_process
    self.wsgi = self.app.wsgi()
  wsgi 中的文件“/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/base.py”,第 103 行
    self.callable = self.load()
  加载中的文件“/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/djangoapp.py”,第 133 行
    返回 mod.make_command_wsgi_application(self.admin_media_path)
  文件“/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/django_wsgi.py”,第 113 行,在 make_command_wsgi_application
    reload_django_settings()
  文件“/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/django_wsgi.py”,第 109 行,在 reload_django_settings
    logging_config_func(settings.LOGGING)
  dictConfig 中的文件“/usr/lib/python2.7/logging/config.py”,第 777 行
    dictConfigClass(config).configure()
  文件“/usr/lib/python2.7/logging/config.py”,第 503 行,在配置中
    raise ValueError("字典没有指定版本")
ValueError:字典未指定版本
回溯(最近一次通话最后):
  文件“/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/arbiter.py”,第 485 行,在 spawn_worker
    worker.init_process()
  文件“/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/workers/base.py”,第 100 行,在 init_process
    self.wsgi = self.app.wsgi()
  wsgi 中的文件“/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/base.py”,第 103 行
    self.callable = self.load()
  加载中的文件“/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/djangoapp.py”,第 133 行
    返回 mod.make_command_wsgi_application(self.admin_media_path)
  文件“/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/django_wsgi.py”,第 113 行,在 make_command_wsgi_application
    reload_django_settings()
  文件“/home/jonathan/socialenv/local/lib/python2.7/site-packages/gunicorn/app/django_wsgi.py”,第 109 行,在 reload_django_settings
    logging_config_func(settings.LOGGING)
  dictConfig 中的文件“/usr/lib/python2.7/logging/config.py”,第 777 行
    dictConfigClass(config).configure()
  文件“/usr/lib/python2.7/logging/config.py”,第 503 行,在配置中
    raise ValueError("字典没有指定版本")
ValueError:字典未指定版本
2013-04-14 17:40:13 [26469] [INFO] 工人退出(pid:26469)
2013-04-14 17:40:13 [26464] [INFO] 关机:大师
2013-04-14 17:40:13 [26464] [INFO] 原因:工作器无法启动。
(socialenv)jonathan@li393-189:~/directory$
4

3 回答 3

21

我有同样的错误,我通过将日志配置添加到项目的设置文件来修复它,我使用了这个页面中的示例

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,
        },
    }
}
于 2013-10-01T02:54:39.927 回答
13

最简单的方法是在settings.py中添加:

LOGGING = {
    'version': 1,
}
于 2013-12-03T12:22:14.260 回答
1

该错误消息暗示为日志记录配置传递的配置字典缺少架构版本。你需要出示你的字典来确定,但这肯定是你得到的错误所指的。有关更多信息,请参阅文档

于 2013-04-16T14:42:29.713 回答