ふと
pythonのパッケージ開発でのロギングはどのようにするべきか
思いました。
how-should-logging-be-used-in-a-python-package
答えは、loggingを使えば良い。
このstackoverflowの質問者さんのパッケージはソースコードだとおもうのですが
このように logging.error( とかつかわれていますね。
logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s', level=logging.DEBUG, stream=sys.stdout)
もちろん、こういうことはアプリケーション再度で設定されるべきで
パッケージの開発コードベースでは宣言んしません。
null handerをパッケージ側で設定してあげると、アプリケーション側でdisableすることができるようです。
# This goes into your library somewhere logging.getLogger('name.of.library').addHandler(logging.NullHandler()) and developers using your library can then disable all logging just for your library by disabling log propagation: logging.getLogger('name.of.library').propagate = False
補足ですが、python-logging-disable-logging-from-imported-modules
を見て改て、logging.infoではなくてlogger = logging.getLogger(__name__)とするのが一般的なようです。
ですのでmodule(file)の各先頭でlogger = logger.getLogger(__name__)とするのが
今私が考える正解です。
以上です