Журналирование WSGI (gevent) в stdout и stderr - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь зарегистрировать свое приложение и хочу использовать для него модуль logging.Приложение работает в Docker-контейнере, что заставило меня войти в stdout и stderr, чтобы я мог видеть его в журналах Docker.К сожалению, работает только мой root logger, который пишет в файл.Я уже искал этот случай, но не смог найти решение.

Для лучшей справки:

config.ini

[loggers]
keys=root, info

[handlers]
keys=debug, info

[formatters]
keys=debug, info, error

[logger_root]
level=DEBUG
handlers=debug

[logger_info]
level=INFO
handlers=info
qualname=docker.info
propagate=0

[handler_debug]
class=FileHandler
level=DEBUG
formatter=debug
args=('.logs', 'a+')

[handler_info]
class=StreamHandler
level=INFO
formatter=info
args=(sys.stdout,)

[formatter_debug]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s

[formatter_info]
format=%(levelname)s - %(message)s

main.py

import logging.config

logging.config.fileConfig(fname='logger.ini')
logger = logging.getLogger(__name__)

from gevent import monkey

monkey.patch_all()
from gevent import pywsgi

# some logging here

http_server = pywsgi.WSGIServer(('0.0.0.0', 5000), app, log=logger)
http_server.serve_forever()
...