2010-08-16 2 views
8

У меня есть 3 процесса, работающие под моим скрученным реактором: Орбитальный, WSGI (работает django) и Twisted.Скрученный каротаж

настоящее время я использую

log.startLogging(sys.stdout) 

Когда все бревно направлены на то же место, там слишком много наводнения.

Одна линия моего журнала с WSGI, как это:

2010-08-16 02:21:12-0500 [-] 127.0.0.1 - - [16/Aug/2010:07:21:11 +0000] "GET /statics/js/monitor_rooms.js HTTP/1.1" 304 - "http://localhost:11111/chat/monitor_rooms" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8" 

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

  1. Какие самый лучший способ справиться с лесозаготовками из 3 источников?
  2. Каковы kwargs, в какую функцию в twisted.log настраивать свой собственный форматировщик (startLogging не содержит ответа)
  3. Какое лучшее решение, чем я предложил? (Я не очень разбираюсь в настройке регистраторов.)

ответ

1

Хех. Я думаю об этой проблеме. То, что я придумал, - это отдельное приложение Twisted, которое регистрирует сообщения, которые он получает через сокет. Вы можете настроить ведение журнала Python для отправки в сокет, и вы можете настроить ведение журнала Twisted для отправки в журнал Python. Таким образом, вы можете получить все, чтобы отправлять сообщения журнала в один процесс (который затем использует протоколирование Python для записи их на диск).

У меня есть некоторые первоначальные доказательства концептуального кода в http://www.acooke.org/cute/APythonLog0.html

Главное хватает, что было бы неплохо, чтобы указать, какое сообщение пришло из какого источника. Не знаете, как лучше всего добавить это (один из подходов - запустить службу на трех разных портах и ​​иметь разные префикс для каждого).

PS Как работает Orbited? Это в моем списке далее ...

11

Чтобы настроить сообщение, вы можете использовать аргумент ключевого слова system для twisted.python.log.msg.

Если предположить, что у вас есть:

log.msg("Service ready for eBusiness!", system="enterprise") 

Вы получите вход выход, как это:

2010-08-16 02:21:12-0500 [enterprise] Service ready for eBusiness! 

Вы могли бы иметь каждый из ваших услуг добавить system="wsgi/orbited/..." их log.msg и log.err вызовов.

Я нашел this, прорываясь через источник в прошлый раз, когда я работал с Twisted.

Смежные вопросы