我用uwsgi部署我的金字塔项目。 ,还可以使用pyramid_exclog赶上预计到logto文件exception.log异常日志。 但是,所有的日志信息(包括异常日志)是输出到这是在[uwsgi],文件production.ini的部分设置好的文件“project.log”
[uwsgi]
logto = /var/log/project.log
我需要你的帮助,使异常信息输出到exception.log代替project.log的文件,我用的是“pserve”命令来启动我的项目,一切正常。 因此,如何部署下uwsgi的pyramid_exclog。
我遇到了同样的问题。 我已经试过--ini-paste-logged
选项,但是这需要粘贴。 我的Python 3.3下运行,并粘贴尚未为Python 3更新,所以,这不是要为我工作。
我想出了是要创造像这样我自己的WSGI应用程序文件(文件名为production.wsgi
):
import configparser
import logging.config
from myapp import main
ini_path = 'production.ini'
# Set up logging
logging.config.fileConfig(ini_path)
# Parse config and create WSGI app
config = configparser.ConfigParser()
config.read(ini_path)
# First argument is default config values, second argument are the settings
# from the app:main section
# http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/startup.html
application = main(config['DEFAULT'], **config['app:main'])
然后在我的production.ini
文件我有以下[uwsgi]
部分:
[uwsgi]
wsgi-file = %d/production.wsgi
chdir = %d
http-socket = :29999
enable-threads = true
master = true
processes = 1
相反,与启动它的--ini-paste
或--ini-paste-logged
,我只是启动--ini
:
/usr/bin/uwsgi --ini /usr/local/myapp/production.ini
(uWSGI实际安装到我的应用程序的虚拟环境。)
pyramid_exclog使用标准Python记录模块。 因此,你需要确保uwsgi从您的INI运行应用程序时解析日志配置。 我觉得这涉及到与调用您的应用程序--ini-paste-logged
或一些这样的uWSGI下。 另外,还要确保你实际上设置日志的pyramid_exclog文档中提到。
下面是我如何做到这一点。 发现这个在IRC日志
首先,确保你设置正确像描述在这里
然后在你的应用程序手动设置日志
from pyramid.paster import setup_logging
# somewhere in your main app
setup_logging('your-settings.ini')
我不知道是否有副作用,这样做,但到目前为止,它的工作原理
文章来源: No exception log output in excepiton.log file in pyramid project with plugin pyramid_exclog under uwsgi