1

uwsgi を使用してピラミッド プロジェクトをデプロイします。また、ファイル exception.log に記録されると予想される例外ログをキャッチするために、pyramid_exclog を使用します。しかし、すべてのログ情報 (例外ログを含む) は、[uwsgi] のセクションで設定されたファイル「project.log」、ファイル production.ini に出力されました。

[uwsgi]                                                                                                                                                                                                                   
logto = /var/log/project.log

project.log の代わりに exception.log のファイルに例外情報を出力するには、あなたの助けが必要です。「pserve」コマンドを使用してプロジェクトを起動すると、すべてうまくいきます。では、uwsgi の下に pyramid_exclog をデプロイする方法を説明します。

4

3 に答える 3

2

私は同じ問題に遭遇しました。--ini-paste-loggedオプションを試しましたが、貼り付けが必要です。私は Python 3.3 で実行していますが、Paste は 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 は実際にアプリの仮想環境にインストールされています。)

于 2014-02-01T21:36:53.453 に答える
1

これが私のやり方です。これはircログで見つけました

まず、ここで説明されているように適切に設定していることを確認してください

次に、アプリでログを手動で設定します

from pyramid.paster import setup_logging

# somewhere in your main app
setup_logging('your-settings.ini')

これを行うことで副作用があるかどうかはわかりませんが、これまでのところうまくいきます

于 2012-07-28T11:09:18.607 に答える
1

pyramid_exclog は、標準の python ロギング モジュールを使用します。したがって、アプリケーションの実行時に、uwsgi が ini からログ設定を解析していることを確認する必要があります。--ini-paste-loggedこれには、uWSGI で、またはそのようなものを使用してアプリを呼び出すことが含まれると思います。また、pyramid_exclog のドキュメントに記載されているように、実際にログを設定していることを確認してください。

于 2012-07-18T15:22:22.293 に答える