在excepiton.log文件也不例外日志输出在金字塔项目,下uwsgi插件pyramid_exc

2019-10-17 00:43发布

我用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。

Answer 1:

我遇到了同样的问题。 我已经试过--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实际安装到我的应用程序的虚拟环境。)



Answer 2:

pyramid_exclog使用标准Python记录模块。 因此,你需要确保uwsgi从您的INI运行应用程序时解析日志配置。 我觉得这涉及到与调用您的应用程序--ini-paste-logged或一些这样的uWSGI下。 另外,还要确保你实际上设置日志的pyramid_exclog文档中提到。



Answer 3:

下面是我如何做到这一点。 发现这个在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