🦔

作ったけど無駄だったPythonのLoggingライブラリ

2022/06/05に公開

loggingライブラリを複数の箇所で読み込んだ際に、毎回初期化処理を行っているなら、気持ち悪いなと思った。
なので、下記のような感じでシングルトンパターンぽいもので書いた。

初回の呼び出しの場合は、loggingを作成し、クラス変数にセット。

その後の呼び出しは、上記のクラス変数を使いまわすことができる。

import logging


class Logger:

    _logger = None

    @classmethod
    def _get_logger(cls):

        if not cls._logger:
            cls._logger = logging.getLogger("uvicorn")

        return cls._logger

    @classmethod
    def info(cls, message):
        cls._get_logger().info(message)

しかしそもそも、logging.getLoggerが、上記みたいな感じになっているので無駄でしたという話。

elastic searchのコネクション周りとかで使うと思っている。

Discussion