Итак, сейчас мне нужно создать и внедрить расширение модуля протоколов Python, который будет использоваться для входа в нашу базу данных. В основном у нас есть несколько приложений python (которые все работают в фоновом режиме), которые в настоящее время регистрируются в случайном mishmash текстовых файлов. Из-за чего практически невозможно выяснить, не удалось ли какое-либо приложение или нет.
Задача, которую я задал, - переместить указанный журнал в текстовые файлы в Oracle. Таблицы уже определены, и там, где все должно быть зарегистрировано, но прямо сейчас, я смотрю на добавление другого обработчика ведения журнала, который будет регистрироваться в БД.
Я использую python 2.5.4 и cx_Oracle, и приложения в целом могут быть запущены в эфир как служба/демон или прямое приложение.
Мне просто любопытно, какой был бы лучший способ сделать это. Несколько вопросов:
-
Если какие-либо ошибки возникают с cx_Oracle, где должны регистрироваться эти ошибки? Если его вниз было бы лучше всего пойти и уйти с регистратором в текстовый файл по умолчанию?
-
В то же время мы начали применять то, что люди используют sys.stderr/stdout.write вместо печати, поэтому в худшем случае мы не сталкивались с какими-либо проблемами, когда печать становится устаревшей. Есть ли способ, чтобы все тысячи вызовов sys.std были переданы непосредственно в регистратор и были ли регистраторы загружены в слабину?
-
После каждого зарегистрированного сообщения, должен ли script совершить совершение? (там будет несколько десятков в секунду.)
-
Каков наилучший способ реализовать новый обработчик для системы ведения журнала? Наследование от базового класса Handler кажется простым.
Любые идеи/предложения были бы замечательными.