Должны ли библиотечные регистраторы иметь только нулевые обработчики?

Я занимаюсь разработкой новой библиотеки и совершенно не знаком с концепцией ведения журнала.

Я добавил журналирование, используя модуль регистрации Python для того же. В журналировании, которое я дал, есть определенный набор FileHandler для уровня отладки и StreamHandler, установленный на уровне предупреждения. Документация Python о ведении журнала гласит, что в библиотеках должны быть только нулевые обработчики. Вот ссылка на документацию https://docs.python.org/3/howto/logging.html

Будет ли это проблемой, если у меня все еще есть эксклюзивные обработчики файлов и потоков в моей библиотеке?

Я не могу понять, почему нужно создавать журналы в библиотеках, если они не могут иметь свои собственные настраиваемые обработчики.

Было бы очень полезно, если бы кто-то смог устранить пробел в моем понимании о реализации регистрации в библиотеках.

Вторичный вопрос: как разработчик приложения, использующий мою библиотеку, сможет получить доступ / включить журналы, которые я создал в библиотеке, если я установлю обработчик Null?

1 ответ

Решение

На ваш первый вопрос - [из документации по питону] -

"Разработчик приложения знает свою целевую аудиторию и какие обработчики наиболее подходят для их приложения: если вы добавите обработчики" под капотом ", вы вполне можете помешать их способности проводить модульные тесты и предоставлять журналы, которые соответствуют их требованиям". 1

Как пользователь вашей библиотеки, я могу захотеть показывать логи из your_pkg.foo.baz, но не из модуля your_pkg.foo. добавление обработчиков из вашей библиотеки может заставить меня сделать это (в зависимости от уровня журнала, который был установлен для регистраторов и обработчиков).

на ваш второй вопрос - добавление Nullhandler позволяет пользователю выбирать его собственные потребности в журнале, настраивая новые обработчики через logging.get_logger("your_pkg.foo.baz").add_handler(...).

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

Другие вопросы по тегам