背景

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の違いが分かりませんでした。