私のpythonパッケージには、ロガーを返す関数があります:
import logging
def get_logger(logger_name, log_level='DEBUG') :
"""Setup and return a logger."""
log = logging.getLogger(logger_name)
log.setLevel(log_level)
formatter = logging.Formatter('[%(levelname)s] %(message)s')
handler = logging.StreamHandler()
handler.setFormatter(formatter)
log.addHandler(handler)
return log
モジュールとサブモジュールでこのロガーを使用します。
from tgtk.logger import get_logger
log = get_logger(__name__, 'DEBUG')
だから私はそれを介してそれを使用することができます
log.debug("Debug message")
log.info("Info message")
これまでは完璧に機能していましたが、今日、奇妙な問題に遭遇しました。あるマシンでは、出力がまったくありません。どのレベルが設定されていても、すべてlog.xxx
が単に「無視」されています。過去に同様の問題がいくつかありました。ロガーの名前を変更した後、どういうわけか再び機能し始めたことを覚えていますが、今回は役に立ちません。
キャッシュはありますか、それとも何が起こっていますか? スクリプトはまったく同じです (SVN 経由で同期されます)。