Записать несколько uwsgi logger на стандартный вывод - PullRequest
0 голосов
/ 17 ноября 2018

Я запускаю uwsgi внутри контейнера Docker для приложения Django.Я хочу регистрировать журналы uwsgi, request и django по-другому, поэтому я создал следующую конфигурацию в моем файле .ini.

[uwsgi]
logger = main file:/dev/stdout
logger = django file:/dev/stdout
logger = req file:/dev/stdout

log-format = "method": "%(method)", "uri": "%(uri)", "proto": "%(proto)", "status": %(status), "referer": "%(referer)", "user_agent": "%(uagent)", "remote_addr": "%(addr)", "http_host": "%(host)", "pid": %(pid), "worker_id": %(wid), "core": %(core), "async_switches": %(switches), "io_errors": %(ioerr), "rq_size": %(cl), "rs_time_ms": %(msecs), "rs_size": %(size), "rs_header_size": %(hsize), "rs_header_count": %(headers), "event": "uwsgi_request"

log-route = main ^((?!django).)*$
log-route = django django
log-route = req uwsgi_request

log-encoder = format:django ${msg}
log-encoder = nl:django

log-encoder = json:main {"timestamp": "${strftime:%%Y-%%m-%%dT%%H:%%M:%%S+00:00Z}", "message":"${msg}","severity": "INFO"}
log-encoder = nl:main

log-encoder = format:req {"timestamp": "${strftime:%%Y-%%m-%%dT%%H:%%M:%%S}", ${msg}}
log-encoder = nl:req

Проблема в том, что теперь мои журналы для моих django и req не показывайсяЯ предполагаю, что это потому, что несколько регистраторов хотят писать в /dev/stdout и не могут.

Как я могу 1. Записать все в stdout во время 2. Форматировать мои журналы по-разному в зависимости от регулярного выражения?


Я подтвердил, что это так, поворачивая некоторые изпротоколировать маршруты и видеть все работает.

...