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中使用logger的对象,但这种方式无法工作。 get_log()的类型是“type'str'”而不是“class”logging.Logger'“。
那么,另一种方法可以解决它吗?谢谢
顺便说一句,autons_nc.py是A.py
答案 0 :(得分:1)
您将logger
初始化为字符串:
logger = ""
log()
中的内容已更改,以引用logging.Logger
的实例。在检查log()
的类型之前,您没有说您实际上正在调用logger
- 是吗?