0

A.py

# logging object
logger = ""

def log():
        """
        a log handle
        """
        global logger, doc_log

        import logging.handlers
        logger = logging.getLogger("autons_log")
        logger.setLevel(logging.DEBUG)

        MAX_SIZE = 800 * 1024 * 1024
        LOG_PATH = doc_log + "/autons_log.log"
        fh = logging.handlers.RotatingFileHandler(LOG_PATH, maxBytes=MAX_SIZE, backupCount=8)

        formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
        fh.setFormatter(formatter)

        logger.addHandler(fh)

def get_log():
        """
        get the object of logger
        """
        global logger
        return logger

とB.py

def hello():
        """
        """
        import autons_nc
        print autons_nc.get_log()
        print type(autons_nc.get_log())
        autons_nc.get_log().debug('hello')

B.pyでロガーのオブジェクトを使いたいのですが、この方法ではうまくいきません。get_log() のタイプは、「クラス 'logging.Logger'」ではなく「タイプ 'str'」です。

それで、別の方法でそれを解決できますか?ありがとうございました

ちなみにautons_nc.pyはA.pyです

4

1 に答える 1

1

logger文字列に初期化します。

logger = ""

これはlog()、のインスタンスを参照するように変更されていますlogging.Loggerlog()-の種類を確認する前に、実際に電話をかけているとは言わないのloggerですか?

于 2012-11-22T07:37:16.140 に答える