Добавление магических глобальных методов в модули - PullRequest
2 голосов
/ 18 сентября 2010

Я начинаю проникать в модуль ведения журналов Python, но если я не хочу, чтобы все сообщения говорили «root», мне нужно создать регистратор для каждого модуля, и это довольно сложно делать это снова и снова.

Я подумал, что было бы удобно, если бы существовал волшебный метод __logger__(), который возвращал бы логгер для текущего модуля, создавая его при необходимости. Волшебная переменная __logger__, которую можно вызывать без скобок, была бы еще лучше. Как бы я поступил об этом?

Например, в модуле с именем foo я мог бы вызвать __logger__.debug('this is a debug message for the foo module'), и он отобразился бы в моей консоли как:

DEBUG: foo: это сообщение отладки для модуля foo

1 Ответ

2 голосов
/ 18 сентября 2010

Вы можете использовать:

logger = logging.getLogger(__name__)

в верхней части вашего класса и использовать его так:

logger.warn(...)
logger.log(...)
...