🦔
作ったけど無駄だったPythonのLoggingライブラリ
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