4

--pasterPyramid を実行するためのオプションでgunicorn を開始しています。

gunicorn -w 1 --paster development.ini

たとえば、gunicorn 自身のメッセージがコンソールに正常に表示されます。

2014-02-20 22:38:50 [44201] [INFO] Starting gunicorn 18.0
2014-02-20 22:38:50 [44201] [INFO] Listening at: http://0.0.0.0:6543 (44201)
2014-02-20 22:38:50 [44201] [INFO] Using worker: sync

しかし、私の Pyramid アプリのログ メッセージは表示されません。

pserve development.iniWSGI サーバーとして使用するを使用するwaitressと、ログ メッセージがコンソールに問題なく表示されます。

development.iniにはかなりバニラのロギング構成セクションが含まれています。

[loggers]
keys = root, apipython

[handlers]
keys = console

[formatters]
keys = generic

[logger_root]
level = INFO
handlers = console

[logger_apipython]
level = DEBUG
handlers =
qualname = apipython

[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = DEBUG
formatter = generic

[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s

gunicorn を使用しているときにログが表示されない理由がわかりません。

4

2 に答える 2

2

gunicorn で pserve を使用しないでください。これは推奨されておらず、次のバージョンで削除される可能性が高いです。

Gunicorn には"logconfig" 設定があり、コマンド ライン引数を使用して構成に設定するだけです。

gunicorn -w 1 --paster development.ini --log-config development.ini

または同じ構成で:

[server:main]
use = egg:gunicorn#main
logconfig = %(here)s/development.ini
于 2014-06-20T19:12:43.570 に答える
1

これは、「pserve」コマンドがサーバーを起動してアプリケーションをロードするだけでなく、ログも設定するために発生します。「gunicorn --paster」はアプリケーションをロードするだけです。これを修正するには、アプリケーションのログを明示的に設定します:

from pyramid.config import Configurator
from pyramid.paster import setup_logging

def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application. """
    setup_logging(global_config['__file__'])
    config = Configurator(settings=settings)
    # Configure application 
    return config.make_wsgi_app()

または、コメントで指摘したように、構成ファイルでサーバーを変更し、「pserve」コマンドを使用します。

[server:main]
use = egg:gunicorn#main 
于 2014-02-25T09:00:11.437 に答える