Я запускаю свое приложение django через сервер uwsgi и запускаю 32 процесса -args в моем init script:
ARGS="--pidfile ${PIDFILE} --uid ${UID} -s /tmp/${NAME}.sock --pythonpath ${GCS_HOME}/server/src/gcs --master -w wsgi -d ${GCS_HOME}/logs/uwsgi.log -p 32 -z 30"
Версии: Python 2.6.5, Django 1.2.1, uWSGI 0.9.5.1
Я хочу иметь один файл журнала, поэтому я использую обработчик обработок на основе мультипроцессора, как описано в вопросе 641420.
Обработчик multilogging отлично работает в простом тестовом приложении, которое у меня есть, а также при запуске manage.py runningerver_plus с werkzeug, но при запуске с django и uwsgi ничего не записывается (я не получаю никаких ошибок или исключений из процесса uwsgi хотя).
Мой файл wsgi ниже, если кто-то может определить проблему с моей конфигурацией или объяснение того, что происходит, я был бы благодарен:
APP_VIRTUAL_ENV = "/home/devadmin/gcs/server/gcs_env/"
APP_PARENT_PATH = "/home/devadmin/gcs/server/src/"
##
import sys
# Redirect stdout to comply with WSGI
sys.stdout = sys.stderr
import os, site
# Set the settings module django should use
os.environ['DJANGO_SETTINGS_MODULE'] = "gcs.settings"
# set the sys.path
site_packages_subpath = "/lib/python%s.%s/site-packages" % (sys.version_info[0]\
, sys.version_info[1], )
site_packages_path = os.path.join(APP_VIRTUAL_ENV, site_packages_subpath[1:])
sys_path = []
for path in sys.path:
if site_packages_subpath in path and not path.startswith(APP_VIRTUAL_ENV):
continue
sys_path.append(path)
sys.path = [ APP_PARENT_PATH ]
sys.path += sys_path
site.addsitedir(site_packages_path)
# reorder sys.path
for path in sys_path:
sys.path.remove(path)
sys.path += sys_path
# setup logging
import os.path
import logging
import logging.config
logging.config.fileConfig(os.path.join(os.path.dirname(__file__), "logging.conf\
"))