Изменение формата ведения журнала в экземпляре класса

#python #django

#python #django

Вопрос:

Это вопрос Python, но приемлемо решение, специфичное для Django.

Для класса, который я пишу, я хотел бы указать префикс вывода журнала для каждого экземпляра. Я не хочу вмешиваться в назначения ведения журнала, которые были настроены. Это решения, о которых я могу думать:

  1. создайте новый регистратор в качестве вспомогательного регистратора модуля, перенастроите родительские обработчики на разные форматеры: mylog.info("foo") => prefixfoo
  2. создайте класс журнала-оболочки с методами info(), warn() и т. Д., Каждый из которых добавляет префикс перед вызовом обернутого регистратора: mylog.info("foo")
  3. сохраните префикс в экземпляре и добавьте вручную: log.info(self.p "foo")
  4. создайте функцию добавления префикса, с помощью которой я вручную оборачиваю все вызовы журнала: log.info(p("foo"))

Очевидно, я предпочитаю решение 1, но я не знаю, как это сделать.

Каково наилучшее решение? Я начинающий программист на Python, поэтому, вероятно, пытаюсь решить неправильную проблему 🙂

Комментарии:

1. Вы смотрели журнал регистрации?

2. @BurhanKhalid нет, но, похоже, он заменяет logging , в то время как я хочу интегрироваться с кодом, который уже используется logging