Pythonのライブラリで、デバッグ用に標準出力する方法(print文でよい?)
背景
Pythonでライブラリを作成しています。
REST APIをラップしたものです。
pip isntall
でインストールされることを前提としています。
質問
ライブラリ内でデバッグ用にprint文を使っていますが、以下の点で良くないと考えています。
- デバッグ用の標準出力のON/OFFを切り替えられない
ライブラリでデバッグ用に標準出力したい場合、どのようなコードを書くべきでしょうか?
具体的には、以下のようなコードです。
def get_hoge(self):
if not self.is_authenticated():
print("not logined")
self.login()
requests.get("https://hoge.co.jp/hoge")
追記(分からなかったこと)
いろいろなサイトを見て、print文を使うのはよくないということが分かりました。
しかし標準ライブラリのhttp.client.HTTPConnection
では、以下のようにprint文を使っていたので、疑問に思いました。
def _read_status(self):
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
if len(line) > _MAXLINE:
raise LineTooLong("status line")
if self.debuglevel > 0:
print("reply:", repr(line))
https://github.com/python/cpython/blob/master/Lib/http/client.py#L260
また、https://qiita.com/amedama/items/b856b2f30c2f38665701 を読みましたがよく分からず、特にloggingとloggerの違いが分かりませんでした。