如何解决Python记录器配置不影响导入的模块
我创建了一个logger.py来格式化我的python记录器,它将有2种不同的设置来记录2个不同文件中的错误和信息消息。
import logging
import os
class Logger(logging.Filter):
def __init__(self):
try:
logpath = os.path.dirname(os.getcwd())+'/'
self.info_logger = self.setup_logger('Normal logger','Infologger111.log')
self.error_logger = self.setup_logger('Error logger','ErrorLogs2222.log')
except Exception as e:
print('[Logger __init__] Exception: ',str(e))
raise
def setup_logger(self,name,log_file,level=logging.DEBUG):
try:
handler = logging.FileHandler(log_file)
handler.setFormatter(logging.Formatter(
'%(asctime)s|%(levelname)s|p%(process)s|[%(pathname)s|%(name)s|%(funcName)s|%(lineno)d]|%(message)s',datefmt="%Y-%m-%d %H:%M:%S"))
logger = logging.getLogger(name)
logger.setLevel(level)
logger.addHandler(handler)
return logger
except Exception as e:
print('[setup_logger] Exception: ',str(e))
raise
我在api_function.py文件中有一个API_connector类
import logging
logger = logging.Logger(__name__)
class API_connector(object):
def __init__(self,data={}):
logger.info("**********test log in API_connector")
现在我将Logger类和API_connector类都导入到我的python代码中,如下所示,
from logger import Logger
import api_function
class LogTest(Logger):
def __init__(self):
super().__init__()
def test_func(self):
print('inside test func')
self.info_logger.info('test_func log message')
self.error_logger.error('test_func error message ')
api_function.API_connector()
if __name__=='__main__':
ob=LogTest()
ob.info_logger.info('main start')
ob.test_func()
所以问题是从我的python代码创建了2个不同的文件并从中记录了日志,但是保存在api_function文件中的日志没有像我的python代码文件那样被打印。 我希望通过这样做,可以在api_function文件中影响相同的记录器配置,
logger = logging.Logger(__name__)
如何使用我配置的所有记录器格式将其打印在这2个配置的文件中?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。