\

Pythonでは、ロガーを関数に渡すためのいくつかの方法があります。一つの方法は、ロガーを関数の引数として渡すことです。しかし、通常はロガーをパラメータとして渡すことはありません。代わりに、各モジュールのトップで log = logging.getLogger (__name__) を使用することが一般的です。

以下に、ロガーを関数に渡すための一般的な方法を示します。

import logging

def configure_logging():
    logger = logging.getLogger("my logger")
    logger.setLevel(logging.DEBUG)
    formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
    ch = logging.StreamHandler()
    ch.setLevel(logging.DEBUG)
    ch.setFormatter(formatter)
    logger.addHandler(ch)
    fh = logging.FileHandler(LOG_FILENAME)
    fh.setLevel(logging.DEBUG)
    fh.setFormatter(formatter)
    logger.addHandler(fh)
    return logger

def count_parrots(logger):
    logger.debug("Counting parrots")

if __name__ == '__main__':
    logger = configure_logging()
    logger.debug("I'm a log file")
    parrots = count_parrots(logger)

このコードでは、configure_logging 関数でロガーを設定し、そのロガーを count_parrots 関数に渡しています。

しかし、関数内でロガーを使用するためには、getLogger 関数を使用することも可能です。getLogger 関数は、ファクトリーのような関数で、与えられたロガー名に対して常に同じインスタンスを返します。したがって、count_parrots の中でロガーを取得するためには、単に logger = logging.getLogger("my logger") を使用すればよいです。

以上が、Pythonでロガーを関数に渡す方法についての基本的な説明です。この情報が役立つことを願っています。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です