我的日志记录模块:MyLog.py
import logging
class MyLogC(logging.Filterer):
def __init__(self):
self.myLogger = logging.getLogger('')
self.myLogger.setLevel(logging.DEBUG)
self.myLogFile = logging.FileHandler("./ex.log","w")
self.myLogger.addHandler(self.myLogFile)
self.myLogFormatter= logging.Formatter('%(asctime)s %(levelname)s %(message)s')
self.myLogFile.setLevel(logging.DEBUG)
self.myLogFile.setFormatter(self.myLogFormatter)
def MyLogger(self):
return self.myLogger
在其他模块中:MyTh.py
import MyLog
class MyThread(threading.Thread):
def __init__(self,name,value):
threading.Thread.__init__(self,None,MyClient,name,(),None,None)
...
self.logger=MyLog.MyLogC.MyLogger
def run(self):
...
self.logger.info("abc")
并使用
self.logger=MyLog.MyLogC.MyLogger
但是我在使用时得到('function'对象没有属性'info')错误:
self.logger.info("abc")
我该如何做到这一点?
答案 0 :(得分:2)
您希望self.logger
成为记录器实例,但目前MyLog.MyLogC
是一个类,而MyLogger
是该类的方法。
尝试self.logger = MyLog.MyLogC().MyLogger()
(注意parens)。
首先创建一个MyLogC
对象,然后在其上调用MyLogger
方法来获取实际的记录器实例。