Как мне войти в приложение WSGI между несколькими процессами? - PullRequest
2 голосов
/ 07 февраля 2011

У меня есть простой веб-сервис, написанный на Python WSGI, он работает на Apache и modwsgi, используя директиву WSGIDaemonProcess process = 4.

Как добавить ведение журнала? Очевидно, что я не могу войти в тот же файл без какого-либо мьютекса, но я не хочу, чтобы производительность снижалась.

Запись не может быть заблокирована. Насколько я знаю, стандартные блоки журналирования блокируются при каждом вызове журнала.

Я думал о том, чтобы заняться каким-либо видом сокетов, это жизнеспособно? Требуется ли «серверный» процесс для получения регистрации? Что произойдет, если сервер не включен?

Ответы [ 3 ]

1 голос
/ 07 февраля 2011

Прямой вывод журнала в sys.stderr. В результате все записанное будет перенаправлено во внутренние процедуры регистрации Apache и в журналы ошибок Apache. Apache делает это, когда выполняется из нескольких процессов одновременно.

0 голосов
/ 07 февраля 2011

Использовать SysLogHandler ( NTEventLogHandler в Windows) или ConcurrentLogHandler .

0 голосов
/ 07 февраля 2011

Взгляните на модуль регистрации в документации по python. Они позволяют вести журнал, например, вы просто создаете новый экземпляр из фабрики журналов, и новый файл будет записан в.

http://docs.python.org/library/logging.html

...