2

Java から来て、log.debug をラップすることをお勧めします

if (log.isDebugEnabled())
    log.debug("blah blah blah "+someObject+" more blahs than you can blah at"):

Pythonでこれを行う同様の理由はありますか? または、Python は文字列を別の方法で処理しますか?

4

2 に答える 2

1

追加のチェックは必要ありません。ログレベルを設定するだけです:

>>> import logging
>>> root = logging.getLogger()
>>> root.setLevel(logging.INFO)
>>> root.addHandler(logging.StreamHandler())
>>> logging.error("test")
test
>>> logging.debug("test")
>>>

ここでも、追加のチェックは必要ありません (ソース コードは から取得logging/__init__.py):

class Logger(Filterer):
    ...
    def debug(self, msg, *args, **kwargs):
        """
        Log 'msg % args' with severity 'DEBUG'.

        To pass exception information, use the keyword argument exc_info with
        a true value, e.g.

        logger.debug("Houston, we have a %s", "thorny problem", exc_info=1)
        """
        if self.isEnabledFor(DEBUG):
            self._log(DEBUG, msg, args, **kwargs)

ご覧のとおり、ロギング自体がチェックを行います。

それが役立つことを願っています。

于 2013-06-28T09:30:30.763 に答える